下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
此存储过程解密比较短的存储过程可以,运行前先备份存储过程,否则可能无法恢复。 Decrypt Stored Procedures,VIEws and TriggersScript rating Total number of Votes [11] By: jgama This SP will decrypt Stored Procedures,VIEws or Triggers that were encrypted using "with encryption" There are 2 versions: one for SP''s only and the other one for SP''s,triggers and vIEws version 1: input: object name (stored procedure,vIEw or trigger) version 2: input: object name (stored procedure,vIEw or trigger),object type(''T''-trigger,''P''-stored procedure or ''V''-vIEw) Original IDea: shoeboy?copyright ?1999-2002 SecurityFocusStored procedures coded by Joseph Gama ? SET QUOTED_IDENTIFIER OFF GOSET ANSI_NulLS OFF GOCREATE PROCEDURE DECRYPT2K (@objname varchar(50),@type char(1) )--input: object name (stored procedure,-- vIEw or trigger),object type (''S''-store-- d procedure,''V''vIEw or ''T''-trigger)--Original IDea: shoeboy <[email protected]-- quacy.org>--copyright ?1999-2002 SecurityFocus --adapted by Joseph Gama--Planet Source Code,my employer and my-- self are not responsible for the use of -- this code--This code is provIDed as is and for ed-- ucational purposes only--Please test it and share your results ASDECLARE @a nvarchar(4000),@b nvarchar(4000),@c nvarchar(4000),@d nvarchar(4000),@i int,@t bigint,@tablename varchar(255),@trigtype varchar(6)SET @type=UPPER(@type)IF @type=''T'' BEGIN SET @tablename=(SELECT sysobjects_1.name FROM dbo.sysobjects INNER JOIN dbo.sysobjects sysobjects_1 ON dbo.sysobjects.parent_obj = sysobjects_1.ID WHERE (dbo.sysobjects.type = ''TR'') AND (dbo.sysobjects.name = @objname)) SET @trigtype=(SELECT CASE WHEN dbo.sysobjects.deltrig > 0 THEN ''DELETE'' WHEN dbo.sysobjects.instrig > 0 THEN ''INSERT'' WHEN dbo.sysobjects.updtrig > 0 THEN ''UPDATE'' END FROM dbo.sysobjects INNER JOIN dbo.sysobjects sysobjects_1 ON dbo.sysobjects.parent_obj = sysobjects_1.ID WHERE (dbo.sysobjects.type = ''TR'') AND (dbo.sysobjects.name = @objname)) END--get encrypted dataSET @a=(SELECT ctext FROM syscomments WHERE ID = object_ID(@objname))SET @b=case @type WHEN ''S'' THEN ''ALTER PROCEDURE ''+ @objname +'' WITH ENCRYPTION AS ''+REPliCATE(''-'',4000-62) WHEN ''V'' THEN ''ALTER VIEW ''+ @objname +'' WITH ENCRYPTION AS SELECT dbo.dtpropertIEs.* FROM dbo.dtpropertIEs''+REPliCATE(''-'',4000-150) WHEN ''T'' THEN ''ALTER TRIGGER ''[email protected]+'' ON ''+ @tablename+'' WITH ENCRYPTION FOR ''[email protected]+'' AS PRINT ''''a''''''+REPliCATE(''-'',4000-150) ENDEXECUTE (@b)--get encrypted bogus SPSET @c=(SELECT ctext FROM syscomments WHERE ID = object_ID(@objname))SET @b=case @type WHEN ''S'' THEN ''CREATE PROCEDURE ''+ @objname +'' WITH ENCRYPTION AS ''+REPliCATE(''-'',4000-62) WHEN ''V'' THEN ''CREATE VIEW ''+ @objname +'' WITH ENCRYPTION AS SELECT dbo.dtpropertIEs.* FROM dbo.dtpropertIEs''+REPliCATE(''-'',4000-150) WHEN ''T'' THEN ''CREATE TRIGGER ''[email protected]+'' ON ''+ @tablename+'' WITH ENCRYPTION FOR ''[email protected]+'' AS PRINT ''''a''''''+REPliCATE(''-'',4000-150) END--start counterSET @i=1--fill temporary variableSET @d = replicate(N''A'',(datalength(@a) / 2))--loopWHILE @i<=datalength(@a)/2 BEGIN--xor original+bogus+bogus encryptedSET @d = stuff(@d,@i,1,NCHAR(UNICODE(substring(@a,1)) ^ (UNICODE(substring(@b,1)) ^ UNICODE(substring(@c,1))))) SET @[email protected]+1 END--drop original SPIF @type=''S'' EXECUTE (''drop PROCEDURE ''+ @objname)ELSE IF @type=''V'' EXECUTE (''drop VIEW ''+ @objname) ELSE IF @type=''T'' EXECUTE (''drop TRIGGER ''+ @objname)--remove encryption--try to preserve caseSET @d=REPLACE((@d),''WITH ENCRYPTION'','''')SET @d=REPLACE((@d),''With Encryption'',''with encryption'','''')IF CHARINDEX(''WITH ENCRYPTION'',UPPER(@d) )>0 SET @d=REPLACE(UPPER(@d),'''')--replace SPexecute( @d)GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NulLS ON GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NulLS OFF GOCREATE PROCEDURE DECRYPTSP2K (@objname varchar(50))--input: object name (stored procedure,-- -- vIEw or trigger)--Original IDea: shoeboy <[email protected]-- dequacy.org>--copyright ?1999-2002 SecurityFocus --adapted by Joseph Gama--Planet Source Code,my employer and my-- -- self are not responsible for the use -- of -- this code--This code is provIDed as is and for ed-- -- ucational purposes only--Please test it and share your results ASDECLARE @a nvarchar(4000),@t bigint--get encrypted dataSET @a=(SELECT ctext FROM syscomments WHERE ID = object_ID(@objname))SET @b=''ALTER PROCEDURE ''+ @objname +'' WITH ENCRYPTION AS ''+REPliCATE(''-'',4000-62)EXECUTE (@b)--get encrypted bogus SPSET @c=(SELECT ctext FROM syscomments WHERE ID = object_ID(@objname))SET @b=''CREATE PROCEDURE ''+ @objname +'' WITH ENCRYPTION AS ''+REPliCATE(''-'',4000-62)--start counterSET @i=1--fill temporary variableSET @d = replicate(N''A'',1))))) SET @[email protected]+1 END--drop original SPEXECUTE (''drop PROCEDURE ''+ @objname)--remove encryption--try to preserve caseSET @d=REPLACE((@d),'''')--replace SPexecute( @d)GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NulLS ON GO
以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的解密存储过程,视图,触发器全部内容,希望文章能够帮你解决解密存储过程,视图,触发器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)