最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

解密存储过程,视图,触发器

来源:动视网 责编:小采 时间:2020-11-09 16:19:13
文档

解密存储过程,视图,触发器

解密存储过程,视图,触发器:解密存储过程,视图,触发器 存储过程 视图 触发器 此存储过程解密比较短的存储过程可以,运行前先备份存储过程,否则可能无法恢复。 Decrypt Stored Procedures, Views and TriggersScript Rating Total number of votes [11]
推荐度:
导读解密存储过程,视图,触发器:解密存储过程,视图,触发器 存储过程 视图 触发器 此存储过程解密比较短的存储过程可以,运行前先备份存储过程,否则可能无法恢复。 Decrypt Stored Procedures, Views and TriggersScript Rating Total number of votes [11]


解密存储过程,视图,触发器 存储过程 视图 触发器 此存储过程解密比较短的存储过程可以,运行前先备份存储过程,否则可能无法恢复。 Decrypt Stored Procedures, Views and TriggersScript Rating Total number of votes [11] By: jgama This SP will decry

解密存储过程,视图,触发器 存储过程 视图 触发器 $velocityCount-->
此存储过程解密比较短的存储过程可以,运行前先备份存储过程,否则可能无法恢复。 

Decrypt Stored Procedures, Views and Triggers
Script 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 SecurityFocus
Stored procedures coded by Joseph Gama ? 

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

CREATE 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 
--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
 AS
DECLARE @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 data
SET @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 ''+@objName+'' ON ''+ @tablename+'' WITH ENCRYPTION FOR ''+@trigtype+'' AS PRINT ''''a''''''+REPLICATE(''-'', 4000-150)
 END
EXECUTE (@b)
--get encrypted bogus SP
SET @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 ''+@objName+'' ON ''+ @tablename+'' WITH ENCRYPTION FOR ''+@trigtype+'' AS PRINT ''''a''''''+REPLICATE(''-'', 4000-150)
 END
--start counter
SET @i=1
--fill temporary variable
SET @d = replicate(N''A'', (datalength(@a) / 2))
--loop
WHILE @i<=datalength(@a)/2
 BEGIN
--xor original+bogus+bogus encrypted
SET @d = stuff(@d, @i, 1,
 NCHAR(UNICODE(substring(@a, @i, 1)) ^
 (UNICODE(substring(@b, @i, 1)) ^
 UNICODE(substring(@c, @i, 1)))))
 SET @i=@i+1
 END
--drop original SP
IF @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 case
SET @d=REPLACE((@d),''WITH ENCRYPTION'', '''')
SET @d=REPLACE((@d),''With Encryption'', '''')
SET @d=REPLACE((@d),''with encryption'', '''')
IF CHARINDEX(''WITH ENCRYPTION'',UPPER(@d) )>0
 SET @d=REPLACE(UPPER(@d),''WITH ENCRYPTION'', '''')
--replace SP
execute( @d)

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

CREATE PROCEDURE DECRYPTSP2K (@objName varchar(50))
--INPUT: object name (stored procedure, 
-- 
-- view or trigger)
--Original idea: shoeboy 
--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
 AS
DECLARE @a nvarchar(4000), @b nvarchar(4000), @c nvarchar(4000), @d nvarchar(4000), @i int, @t bigint
--get encrypted data
SET @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 SP
SET @c=(SELECT ctext FROM syscomments WHERE id = object_id(@objName))
SET @b=''CREATE PROCEDURE ''+ @objName +'' WITH ENCRYPTION AS ''+REPLICATE(''-'', 4000-62)
--start counter
SET @i=1
--fill temporary variable
SET @d = replicate(N''A'', (datalength(@a) / 2))
--loop
WHILE @i<=datalength(@a)/2
 BEGIN
--xor original+bogus+bogus encrypted
SET @d = stuff(@d, @i, 1,
 NCHAR(UNICODE(substring(@a, @i, 1)) ^
 (UNICODE(substring(@b, @i, 1)) ^
 UNICODE(substring(@c, @i, 1)))))
 SET @i=@i+1
 END
--drop original SP
EXECUTE (''drop PROCEDURE ''+ @objName)
--remove encryption
--try to preserve case
SET @d=REPLACE((@d),''WITH ENCRYPTION'', '''')
SET @d=REPLACE((@d),''With Encryption'', '''')
SET @d=REPLACE((@d),''with encryption'', '''')
IF CHARINDEX(''WITH ENCRYPTION'',UPPER(@d) )>0
 SET @d=REPLACE(UPPER(@d),''WITH ENCRYPTION'', '''')
--replace SP
execute( @d)

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

文档

解密存储过程,视图,触发器

解密存储过程,视图,触发器:解密存储过程,视图,触发器 存储过程 视图 触发器 此存储过程解密比较短的存储过程可以,运行前先备份存储过程,否则可能无法恢复。 Decrypt Stored Procedures, Views and TriggersScript Rating Total number of votes [11]
推荐度:
标签: 过程 存储 解密
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top