[ad_1]
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
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.
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.
[ad_2]
コメント