`
djdnmq
  • 浏览: 8047 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL存储过程解密/Encrypted object is not transferable, and script can not be generated

 
阅读更多

存储过程解密(破解函数,过程,触发器,视图.仅限于SQLSERVER2000) 

--*/ 

/*--调用示例: 

--解密指定存储过程 
exec sp_decrypt '存储过程名' 

--*/ 


create PROCEDURE sp_decrypt(@objectName varchar(50)) 
AS 
begin 
begin tran 
declare @objectname1 varchar(100),@orgvarbin varbinary(8000) 
declare @sql1 nvarchar(4000),@sql2 nvarchar(4000),@sql3 nvarchar(4000),@sql4 nvarchar(4000),@sql5 nvarchar(4000),@sql6 nvarchar(4000),@sql7 nvarchar(4000),@sql8 nvarchar(4000),@sql9 nvarchar(4000),@sql10 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 ENCRYPTION AS ' 
else 'ALTER PROCEDURE '+ @objectName+' WITH ENCRYPTION AS ' 
end) 

if @type='TR' 
set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 ' 

if @type='FN' or @type='TF' or @type='IF' 
set @sql1=(case @type when 'TF' then 
'ALTER FUNCTION '+ @objectName+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end ' 
when 'FN' then 
'ALTER FUNCTION '+ @objectName+'(@a char(1)) returns char(1) with encryption as begin return @a end' 
when 'IF' then 
'ALTER FUNCTION '+ @objectName+'(@a char(1)) returns table with encryption as return select @a as a' 
end) 

if @type='V' 
set @sql1='ALTER VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 ' 

set @q=len(@sql1) 
set @sql1=@sql1+REPLICATE('-',4000-@q) 
select @sql2=REPLICATE('-',4000),@sql3=REPLICATE('-',4000),@sql4=REPLICATE('-',4000),@sql5=REPLICATE('-',4000),@sql6=REPLICATE('-',4000),@sql7=REPLICATE('-',4000),@sql8=REPLICATE('-',4000),@sql9=REPLICATE('-',4000),@sql10=REPLICATE('-',4000) 
exec(@sql1+@sql2+@sql3+@sql4+@sql5+@sql6+@sql7+@sql8+@sql9+@sql10) 
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 ENCRYPTION AS ' 
else 'CREATE PROCEDURE '+ @objectName +' WITH ENCRYPTION AS ' 
end) 


if @type='FN' or @type='TF' or @type='IF'--刚才有错改一下 
SET @OrigSpText2=(case @type when 'TF' then 
'CREATE FUNCTION '+ @objectName+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end ' 
when 'FN' then 
'CREATE FUNCTION '+ @objectName+'(@a char(1)) returns char(1) with encryption as begin return @a end' 
when 'IF' then 
'CREATE FUNCTION '+ @objectName+'(@a char(1)) returns table with encryption as return select @a as a' 
end) 

if @type='TR' 
set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 ' 

if @type='V' 
set @OrigSpText2='CREATE VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 ' 

set @q=4000-len(@OrigSpText2) 
set @OrigSpText2=@OrigSpText2+REPLICATE('-',@q) 
end 
else 
begin 
SET @OrigSpText2=REPLICATE('-', 4000) 
end 
--start counter 
SET @i=1 
--fill temporary variable 

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

--loop 
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 convert(nvarchar(4000),case when @status&2=2 then uncompress(@orgvarbin) else @orgvarbin end) 
end) 
print @resultsp 
--execute( @resultsp) 
set @n=@n+1 

end 

end 
set @k=@k+1 
end 

drop table #temp 
rollback tran 
end 
GO
分享到:
评论

相关推荐

    File opened that is not a database file file is encrypted.docx

    android 9.0及其以上版本手机 操作数据库,再打开数据库db文件出现 “File opened that is not a database file file is encrypted or is not a database”android 9.0以下的版本 不会出现。 原因及解决方法。

    HEIST: HTTP Encrypted Information can be Stolen through TCP-windows

    在Black Hat 2016大会上,两名比利时的安全研究人员展示了他们今年的研究成果...HEIST的全称是Encrypted Information can be Stolen through TCP-Windows。大体意思就是通过TCP-Windows协议可以窃取到加密的明文信息。

    实例讲解SQL Server加密功能

    SQL Server中加密是层级的,每一个上层为下提供保护。如图: 实例: /** SMK(Service Master Key)在SQL Server安装时生成,由Windows DPAPI(Data Protection API)提供保护 **/ /**创建数据库级别DMK(Database ...

    RedGate.SQL.Prompt.v.5.1.8.2完美破解版

    SQL Prompt is crammed with features that take the routine out of working with SQL, and leave you to focus on the tricky bits. When you're writing code, SQL Prompt suggests appropriate keywords and ...

    RedGate.SQL.Prompt.v.5.2.2.1[带注册机(Keygen-Lz0)]

    SQL Prompt is crammed with features that take the routine out of working with SQL, and leave you to focus on the tricky bits. When you're writing code, SQL Prompt suggests appropriate keywords and ...

    RedGate SQL Prompt 5.1 with crack 破解版.

    SQL Prompt is crammed with features that take the routine out of working with SQL, and leave you to focus on the tricky bits. When you're writing code, SQL Prompt suggests appropriate keywords and ...

    jbmail - 好用的郵伺服器測試工具

    What is JBMail? JBMail is a compact and portable secure e-mail client. The software has ... JBMail is designed to be compact and secure, and the design goals may create inconveniences for some users.

    Murach's SQL Server 2016 for Developers

    Chapter 14, Data Exploration and Predictive Modeling with R in SQL Server, shows how you can use R for advanced data exploration and manipulation, and for statistical analysis and predictive modeling ...

    DISQLite_Pro_5.15_D7-RX10.1

    DISQLite3 is a self-contained, embeddable, zero-configuration SQL database engine for ...Database files created with DISQLite3 can also be accessed by Linux and MacOS using the default SQLite libraries.

    DISQLite3 v5.18.0

    DISQLite3 5.18.0 – ReadMe DISQLite3 is a self-contained, embeddable, zero-...Database files created with DISQLite3 can also be accessed by Linux and MacOS using the default SQLite libraries.

    Encrypted Notepad-开源

    This software have English and other language support, you can change default language in "設定 -&gt; 更改語言". If you can help me to translate language, please visit ...

    DISQLite3_5.20.0_Source

    Introduction DISQLite3 implements a self-contained, embeddable, zero-configuration SQL ...Database files created with DISQLite3 can also be accessed by Linux and MacOS using the default SQLite libraries.

    LockBox2.5

    If you have encrypted a string with LockBox for Delphi 7 you'll probably want to be able to decrypt it with LockBox for Delphi 200+. But you might also want to encrypt Unicode strings. The only way ...

    Securing SQL Server(Apress,2016)

    Securing SQL Server demonstrates how administrators and developers can both play their part in the protection of a SQL Server environment. This book provides a comprehensive technical guide to the ...

    计算机网络第六版答案

    Furthermore, Trudy can even drop the packets that are being sent by Bob to Alice (and vise-versa), even if the packets from Bob to Alice are encrypted. Chapter 1 Problems Problem 1 There...

    PNG加密解密工具是什么?加密代码演示.docx

    # PNG加密解密工具 此工具可以加密和解密PNG图片,保护您的隐私。 ## 加密 1. 选择要加密的PNG图片。 2. 输入密码并确认。 3. 点击“加密”按钮。 4. 保存加密后的PNG图片。 ## 解密 1. 选择要解密的PNG图片。 ...

    NIST SP800-49.pdf

    S/MIME is based upon the widely used MIME standard [MIME] and describes a protocol for adding cryptographic security services through MIME encapsulation of digitally signed and encrypted objects....

    TurboDB Components Professional v4.17

    It has a lot of built-in database functions for use in filters and can store tables in encrypted files. Table files and the component interfaces are identical on both platforms. Replacing BDE ...

    查看邮箱密码

    Netscape 6.x/7.x (If the password is not encrypted with master password) Mozilla Thunderbird (If the password is not encrypted with master password) Group Mail Free Yahoo! Mail - If the password ...

    VCLZip pro 4.51_1 压缩/解压缩控件(含源码)

    Uncompressed, Compressed, and Archive file sizes can be up to 2^63-1 bytes in length. You can compress up to 2147483647 files into an archive. This is compatible with PKZip's Zip64 format. If a file...

Global site tag (gtag.js) - Google Analytics