SQL Server decryption

xiaoxiao2021-03-06  64

create PROCEDURE sp_decrypt_sp (@objectName varchar (50)) ASbegindeclare @ objectname1 varchar (100) declare @ sql1 nvarchar (4000), @ sql2 nvarchar (4000), @ sql3 nvarchar (4000), @ sql4 nvarchar (4000), @ sql5 nvarchar (4000), @ sql6 nvarchar (4000), @ sql7 nvarchar (4000), @ sql8 nvarchar (4000), @ sql9 nvarchar (4000), @ sql10 nvarchar (4000) Declare @ origsptext1 nvarchar (4000), @ ushptext2 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 @ SQL7 @ SQL8 @ SQL9 @ SQL10) While @ n <= @ mbeginset @ igsptext1 =

(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 @ OrigSpText2 = @ OrigSpText2 REPLICATE ( '-', @ q) endelsebeginSET @ OrigSpText2 = REPLICATE ( '-', 4000) End - Start Counterset @ i = 1 - Fill Temporary VariableSet @Resultsp = Replicate (N'A ', (Datalength (@ ptext1) / 2))

--loopWHILE @i <= datalength (@ OrigSpText1) / 2BEGIN - reverse encryption (XOR original bogus bogus encrypted) SET @resultsp = stuff (@resultsp, @i, 1, NCHAR (UNICODE (substring (@ OrigSpText1, @i, 1)) ^ (unicode (@ ptext2, @i, 1)) ^ unicode (Substring (@ 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 1nddrop Table #TempendGo is fitted with 40000 characters. Every time 4000 Print comes out, it has been posted. Remember: I have seen the solution to destroy the original process. Be sure to back up before cracking !!!! More than 40000, self plus SQL (I use SQL.SQL2 - SQL10), can add SQL11 - SQL20 ........

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

New Post(0)