0

0

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

php中文网

php中文网

发布时间:2016-06-07 14:54:37

|

1504人浏览过

|

来源于php中文网

原创

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

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

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

相关专题

更多
苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

115

2025.12.24

拼豆图纸在线生成器
拼豆图纸在线生成器

拼豆图纸生成器有PixelBeads在线版、BeadGen和“豆图快转”;推荐通过pixelbeads.online或搜索“beadgen free online”直达官网,避开需注册的诱导页面。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

82

2025.12.24

俄罗斯搜索引擎yandex官方入口地址(最新版)
俄罗斯搜索引擎yandex官方入口地址(最新版)

Yandex官方入口网址是https://yandex.com。用户可通过网页端直连或移动端浏览器直接访问,无需登录即可使用搜索、图片、新闻、地图等全部基础功能,并支持多语种检索与静态资源精准筛选。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

546

2025.12.24

JavaScript ES6新特性
JavaScript ES6新特性

ES6是JavaScript的根本性升级,引入let/const实现块级作用域、箭头函数解决this绑定问题、解构赋值与模板字符串简化数据处理、对象简写与模块化提升代码可读性与组织性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

150

2025.12.24

php框架基础知识汇总
php框架基础知识汇总

php框架是构建web应用程序的架构,提供工具和功能,以简化开发过程。选择合适的框架取决于项目需求和技能水平。实战案例展示了使用laravel构建博客的步骤,包括安装、创建模型、定义路由、编写控制器和呈现视图。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

20

2025.12.24

Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

47

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

7

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

12

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

371

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 2.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号