Làm cách nào để giải mã thủ tục lưu trữ trong Sql Server 2008?

lập trình


chào mọi người

Một trong những đồng nghiệp của tôi đã được tạo ra. Bây giờ tôi muốn quản lý tất cả những thứ đó, tôi không biết cách giải mã quy trình, chúng tôi đã mất bản sao của quy trình đó.

Tôi đang sử dụng đoạn mã sau để giải mã quy trình của mình, nhưng nó không hoạt động để có được quy trình mà nó luôn đưa ra giá trị null.

create  PROCEDURE sp_decrypt_sp (@objectName varchar(50))
AS
DECLARE  @OrigSpText1 nvarchar(4000),  @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)
declare  @i int , @t bigint , @ct nvarchar(max)

--get encrypted data
SET @OrigSpText1= (SELECT top 1 ctext FROM syscomments  WHERE id = object_id(@objectName) order by colid)
SET @OrigSpText2='ALTER PROCEDURE '+ @objectName +' WITH ENCRYPTION AS '+REPLICATE('-', 3938)
EXECUTE (@OrigSpText2)
print @OrigSpText1

SET @OrigSpText3=(SELECT top 1 ctext FROM syscomments  WHERE id = object_id(@objectName) order by colid)
SET @OrigSpText2='CREATE PROCEDURE '+ @objectName +' WITH ENCRYPTION AS '+REPLICATE('-', 4000-62)

--start counter
SET @i=1
--fill temporary variable
SET @resultsp = replicate(N'A', (datalength(@OrigSpText1) / 2))

--loop
WHILE @i<=datalength(@OrigSpText1)/2
BEGIN
--reverse encryption (XOR original+bogus+bogus encrypted)
SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^
                                (UNICODE(substring(@OrigSpText2, @i, 1)) ^
                                UNICODE(substring(@OrigSpText3, @i, 1)))))
print @resultsp
 SET @i=@i+1
END
--drop original SP
--EXECUTE ('drop PROCEDURE '+ @objectName)
--remove encryption
--preserve case
SET @resultsp=REPLACE((@resultsp),'WITH ENCRYPTION', '')
SET @resultsp=REPLACE((@resultsp),'With Encryption', '')
SET @resultsp=REPLACE((@resultsp),'with encryption', '')
IF CHARINDEX('WITH ENCRYPTION',UPPER(@resultsp) )>0 
  SET @resultsp=REPLACE(UPPER(@resultsp),'WITH ENCRYPTION', '')
--replace Stored procedure without enryption
set @ct = (SELECT ctext FROM syscomments WHERE id = object_id(@objectName))
print @ct
execute( @resultsp)
GO

Cảm ơn tất cả

Giải pháp 4

thử cái này

SQL
create  PROCEDURE sp_decrypt_sp (@objectName varchar(50))
 AS
 

 
 DECLARE  @OrigSpText1 nvarchar(4000),  @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)
 declare  @i int , @t bigint , @ct nvarchar(max)

 --get encrypted data
 SET @OrigSpText1= (SELECT top 1 ctext FROM syscomments  WHERE id = object_id(@objectName) order by colid)
 SET @OrigSpText2='ALTER PROCEDURE '+ @objectName +' WITH ENCRYPTION AS '+REPLICATE('-', 3938)
  EXECUTE (@OrigSpText2)
 print @OrigSpText1

 SET @OrigSpText3=(SELECT top 1 ctext FROM syscomments  WHERE id = object_id(@objectName) order by colid)
 SET @OrigSpText2='CREATE PROCEDURE '+ @objectName +' WITH ENCRYPTION AS '+REPLICATE('-', 4000-62)

--start counter
 SET @i=1
 --fill temporary variable
 SET @resultsp = replicate(N'A', (datalength(@OrigSpText1) / 2))
 
--loop
 WHILE @i<=datalength(@OrigSpText1)/2
 BEGIN
  --reverse encryption (XOR original+bogus+bogus encrypted)
 SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^
                                 (UNICODE(substring(@OrigSpText2, @i, 1)) ^
                                 UNICODE(substring(@OrigSpText3, @i, 1)))))
 print @resultsp
  SET @i=@i+1
 END
 --drop original SP
 --EXECUTE ('drop PROCEDURE '+ @objectName)
 --remove encryption
 --preserve case
 SET @resultsp=REPLACE((@resultsp),'WITH ENCRYPTION', '')
 SET @resultsp=REPLACE((@resultsp),'With Encryption', '')
 SET @resultsp=REPLACE((@resultsp),'with encryption', '')
 IF CHARINDEX('WITH ENCRYPTION',UPPER(@resultsp) )>0 
   SET @resultsp=REPLACE(UPPER(@resultsp),'WITH ENCRYPTION', '')
 --replace Stored procedure without enryption
 set @ct = (SELECT ctext FROM syscomments WHERE id = object_id(@objectName))
 print @ct
 execute( @resultsp)
 GO

sau đó
bass đối tượng của bạn vào quá trình này

Giải pháp 1

Có lẽ là một câu hỏi ngây thơ nhưng bạn đã thử truy cập nó qua SSMS chưa?

Giải pháp 2

vì nó không được lưu trữ dưới dạng “văn bản thuần túy” trên máy chủ nên bạn sẽ cần xem xét các công cụ của bên thứ 3.

Đề xuất của Google

Giải pháp 3

Chỉ cần tải về Phần mềm miễn phí SQL Decryptor của Optillect

Một công cụ hiện đại giải mã các thủ tục, chức năng, trình kích hoạt và chế độ xem T-SQL trên bất kỳ Máy chủ SQL nào 😎

Giải pháp 5

Phần mềm miễn phí SQL Decryptor của Optillect cũng có tác dụng với tôi. Nó cung cấp cho bạn một vài lựa chọn. Bạn có thể xem mã của sp nếu bạn chỉ muốn xem nó hoặc bạn có thể giải mã sp trên máy chủ. Ứng dụng chỉ cần kết nối với máy chủ sql.

コメント

タイトルとURLをコピーしました