Deciphering the stored procedure of SQL2000

xiaoxiao2021-03-06  17

Content from the Internet, the author Unknown Drop Procedure SP_Decryptgocreate Procedure SP_Decrypt (@Objectname Varchar (50)) Asbegin

Begin Transaction --Add by Playyuer

Declare @ Objectname1 varchar (100) Declare @ sql1 nvarchar (4000), @ SQL2 NVARCHAR (4000), @ SQL3 nVarchar (4000), @ SQL5 nVarchar (4000), @ SQL5 NVARCHAR (4000), @ sql6 nvarchar (4000), @ sql7 nvarchar (4000), @ sql8 nvarchar (4000), @ sql9 nvarchar (4000), @ sql10 nvarchar (4000) DECLARE @ OrigSpText1 nvarchar (4000), @ OrigSpText2 nvarchar (4000), @ OrigSpText3 nvarchar (4000), @ Resultsp nvarchar (4000) Declare @i int, @t bigintdeclare @m int, @ n int, @ q Intset @ m = (select max (colid) from syscomments where id = Object_id (@Objectname)) set @ n = 1- -get encrypted datacreate table #temp (colid int, ctext varbinary (8000)) insert #temp SELECT colid, ctext FROM syscomments WHERE id = object_id (@objectName) set @ sql1 = 'ALTER PROCEDURE' @objectName 'WITH ENCRYPTION AS '--set @ sql1 =' alter procedure ' @objectname ' with encryption as' set @ q = len (@ SQL1) set @ SQL1 = @ SQL1 Replicate ('-', 4000- @ q) select @ SQL2 = Replicate ('-', 4000), @ SQL3 = Replicate ('-', 4000), @ SQL4 = Replicate ('-', 4000), @ SQL5 = Replicate ('-', 4000), @ SQL6 = Replicate ('-', 4000), @ SQL7 = Replicate ('-', 4000), @ SQL8 = Replicate ('-', 4000), @ SQL9 = Replicate ('-', 4000), @ SQL10 = Replicate ('-', 4000) EXEC (@ SQL1 @ sql2 @ sql3 @ sql4 @ sql5 @ sql6 @ sql7 @ sql8 @ sql9 @ sql10) while @n <= @ mbeginSET @ OrigSpText1 = (SELECT ctext FROM #temp WHERE colid = @ n) set @ objectname1 = @

objectName '_ t'SET @ OrigSpText3 = (SELECT ctext FROM syscomments WHERE id = object_id (@objectName) and colid = @ n) if @ n = 1beginSET @ OrigSpText2 =' CREATE PROCEDURE ' @objectName ' WITH ENCRYPTION AS '- SET @ q = 4000-len (@ OrigsPText2) set @ igsptext2 = @ igigsptext2 replicate ('-', @ q) endelsebeginset @ ptext2 = replicate ('-', 4000) end - start counterset @ i = 1 - fill temporary variableSET @resultsp = replicate (n'A ', (datalength (@ OrigSpText1) / 2)) - loopWHILE @i <= datalength (@ OrigSpText1) / 2BEGIN - reverse encryption (XOR original bogus bogus encrypted) Set @Resultsp = stuff (@Resultsp, @i, 1, nchar (unicode (@ ptext1, @i, 1)) ^ (unicode (@ ptext2, @i, 1)) ^ unicode (@ @ 1 OrigspText3, @i, 1))))) SET @ i = @ i 1END - DROP Original SP - Execute ('Drop Procedure' @ObjectName) - Remove Encryption - Preserve Caseset @ 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 Enryptionprint @ resultsp - Execute (@Resultsp) set @ n = @ n 1ENDDROP TABLE #Tempendrollback Transaction --Add by Playyuergo

转载请注明原文地址:https://www.9cbs.com/read-58161.html

New Post(0)