邮件订阅
5ucms仿站,SQL Server加密存储过程的破解问题
作者: 来源: 日期:2018/5/18 5:15:46 浏览量:2(滞后) 人气:LOADING...(实时) 【

5ucms仿站,SQL Server加密存储过程的破解问题

CREATE PROCEDURE sp_decrypt(@objectName varchar(50))

 

 

AS

begin

set nocount >--CSDN:j9988 copyright:2004.04.15

--V3.1

--破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器

--修正上一版视图触发器不能正确解密错误

--发现有错,请E_MAIL:CSDNj9988@tom

begin tran

declare @objectname1 varchar(100),@orgvarbin varbinary(8000)

declare @sql1 nvarchar(4000),@sql2 varchar(8000),@sql3 nvarchar(4000),@sql4 nvarchar(4000)

DECLARE @OrigSpText1 nvarchar(4000), @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)

declare @i int,@status int,@type varchar(10),@parentid int

declare @colid int,@n int,@q int,@j int,@k int,@encrypted int,@number int

select @type=xtype,@parentid=parent_obj from sysobjects where id=object_id(@ObjectName)

 

create table #temp(number int,colid int,ctext varbinary(8000),encrypted int,status int)

insert #temp SELECT number,colid,ctext,encrypted,status FROM syscomments WHERE id = object_id(@objectName)

select @number=max(number) from #temp

set @k=0

 

while @k<=@number

begin

if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)

begin

if @type=''P''

set @sql1=(case when @number>1 then ''ALTER PROCEDURE ''+ @objectName +'';''+rtrim(@k)+'' WITH ENCRYPTI>else ''ALTER PROCEDURE ''+ @objectName+'' WITH ENCRYPTI>end)

 

if @type=''TR''

begin

declare @parent_obj varchar(255),@tr_parent_xtype varchar(10)

select @parent_obj=parent_obj from sysobjects where id=object_id(@objectName)

select @tr_parent_xtype=xtype from sysobjects where id=@parent_obj

if @tr_parent_xtype=''V''

begin

set @sql1=''ALTER TRIGGER ''+@objectname+'' >end

else

begin

set @sql1=''ALTER TRIGGER ''+@objectname+'' >end

 

end

if @type=''FN'' or @type=''TF'' or @type=''IF''

set @sql1=(case @type when ''TF'' then

''ALTER FUNCTI>when ''FN'' then

''ALTER FUNCTI>when ''IF'' then

''ALTER FUNCTI>end)

 

if @type=''V''

set @sql1=''ALTER VIEW ''+@objectname+'' WITH ENCRYPTI> 

set @q=len(@sql1)

set @sql1=@sql1+REPLICATE(''-'',4000-@q)

select @sql2=REPLICATE(''-'',8000)

set @sql3=''exec(@sql1''

select @colid=max(colid) from #temp where number=@k

set @n=1

while @n<=CEILING(1.0*(@colid-1)/2) and len(@sQL3)<=3996

begin

set @sql3=@sql3+''+@''

set @n=@n+1

end

set @sql3=@sql3+'')''

exec sp_executesql @sql3,N''@Sql1 nvarchar(4000),@ varchar(8000)'',@sql1=@sql1,@=@sql2

 

end

set @k=@k+1

end

 

set @k=0

while @k<=@number

begin

if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)

begin

select @colid=max(colid) from #temp where number=@k

set @n=1

 

while @n<=@colid

begin

select @OrigSpText1=ctext,@encrypted=encrypted,@status=status FROM #temp WHERE colid=@n and number=@k

 

SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectName) and colid=@n and number=@k)

if @n=1

begin

if @type=''P''

SET @OrigSpText2=(case when @number>1 then ''CREATE PROCEDURE ''+ @objectName +'';''+rtrim(@k)+'' WITH ENCRYPTI>else ''CREATE PROCEDURE ''+ @objectName +'' WITH ENCRYPTI>end)

 

 

if @type=''FN'' or @type=''TF'' or @type=''IF''

SET @OrigSpText2=(case @type when ''TF'' then

''CREATE FUNCTI>when ''FN'' then

''CREATE FUNCTI>when ''IF'' then

''CREATE FUNCTI>end)

 

if @type=''TR''

begin

 

if @tr_parent_xtype=''V''

begin

set @OrigSpText2=''CREATE TRIGGER ''+@objectname+'' >end

else

begin

set @OrigSpText2=''CREATE TRIGGER ''+@objectname+'' >end

 

end

 

if @type=''V''

set @OrigSpText2=''CREATE VIEW ''+@objectname+'' WITH ENCRYPTI> 

set @q=4000-len(@OrigSpText2)

set @OrigSpText2=@OrigSpText2+REPLICATE(''-'',@q)

end

else

begin

SET @OrigSpText2=REPLICATE(''-'', 4000)

end

SET @i=1

 

SET @resultsp = replicate(N''A'', (datalength(@OrigSpText1) / 2))

 

WHILE @i<=datalength(@OrigSpText1)/2

BEGIN

 

SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^

(UNICODE(substring(@OrigSpText2, @i, 1)) ^

UNICODE(substring(@OrigSpText3, @i, 1)))))

SET @i=@i+1

END

set @orgvarbin=cast(@OrigSpText1 as varbinary(8000))

set @resultsp=(case when @encrypted=1

then @resultsp

else c>end)

print @resultsp

 

set @n=@n+1

 

end

 

end

set @k=@k+1

end

 

drop table #temp

rollback tran

end


选择5ucms.org 选择未来

本站推荐: 5ucms模板下载 5ucms插件下载 仿站联系Q3876307       [复制给好友] [打印] [关闭] [返回] [顶部]
上一篇:5ucms仿站,SQL SERVER乐观锁定和悲观锁定使用实例
下一篇:5ucms模版,SQL Server讲堂:备份和恢复措施
本站声明:本网站所载文章等内容,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权及其它问题,请在30日内与本网联系(Email:3876307#qq.com),我们将在第一时间删除内容。若原创内容转载请注明出处。
5ucms仿站,SQL Server加密存储过程的破解问题的关键词:
评论信息
相关分类
本周热门
本月热门
关于我们 - 版权/免责 申明 - 建站服务 - 网站地图 - 稿件投递 - 联系我们 - 5ucms
Copyright © 2008-2015 www.5ucms.org