日期:2014-05-17  浏览次数:20537 次

SQL2000把存储过程加密了,怎么解开?
SQL2000把存储过程加密了,在网上搜过create PROCEDURE [dbo].[sp_decrypt]  和Create PROCEDURE [dbo].[sp__windbi$decrypt]还下了很多工具,但是还是不能解开,不知道加密存储过程的方法是否可以自定义.
有没有好的办法能帮我解开,谢谢!
------最佳解决方案--------------------
参考:http://wenku.baidu.com/view/255d13a7f524ccbff1218443.html?from=rec&pos=1&weight=6&lastweight=4&count=4
------其他解决方案--------------------
该回复于2012-02-21 17:21:03被版主删除
------其他解决方案--------------------
Text                                                                                                                                                                                                                                                            
--------------------------------------------------------------------------------------------------------------- 
CREATE  PROCEDURE sp_decrypt(@objectname varchar(50))
AS
begin
set nocount on
--CSDN:j9988 copyright:2004.07.15
--V3.2
--破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器
--修正上一版"视图触发器"不能正确解密错误
--发现有错,请E_MAIL:CSDNj9988@tom.com
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)