知识大全 道与魔:SqlServer存储过程/函数加/解密

Posted 函数

篇首语:人心隔肚皮,看人看行为。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 道与魔:SqlServer存储过程/函数加/解密相关的知识,希望对你有一定的参考价值。

道与魔:SqlServer存储过程/函数加/解密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  存储过程 存储函数的加密 WITH ENCRYPTION  <! [if !supportLineBreakNewLine] >  <! [endif] >    CREATE procedure dbo sp_XML_main    @table_name nvarchar( )=     @dirname nvarchar( )=     WITH ENCRYPTION    as    begin         end    go    存储过程 存储函数的解密(以下是一位绝世高人编写的代码)    if exists (select * from dbo sysobjects where id = object_id(N [dbo] [sp_decrypt] ) and OBJECTPROPERTY(id N IsProcedure ) = )    drop procedure [dbo] [sp_decrypt]    GO    /* 破解函数 过程 触发器 视图 仅限于SQLSERVER      作者:J All rights reserved*/    /* 调用示例     解密指定存储过程    exec sp_decrypt AppSP_test      对所有的存储过程解密    declare tb cursor for    select name from sysobjects where xtype= P and status> and name<> sp_decrypt     declare @name sysname    open tb    fetch next from tb into @name    while @@fetch_status=     begin    print /* 存储过程 [ +@name+ ] */     exec sp_decrypt @name    fetch next from tb into @name    end    close tb    deallocate tb     */    if exists (select * from dbo sysobjects where id = object_id(N [dbo] [SP_DECRYPT] ) and OBJECTPROPERTY(id N IsProcedure ) = )    drop procedure [dbo] [SP_DECRYPT]    GO    CREATE PROCEDURE sp_decrypt(@objectName varchar( ))    AS    begin    set nocount on     破解字节不受限制 适用于SQLSERVER 存储过程 函数 视图 触发器     修正上一版视图触发器不能正确解密错误     发现有错 请E_MAIL     begin tran    declare @objectname varchar( ) @varbin varbinary( )    declare @sql nvarchar( ) @sql varchar( ) @sql nvarchar( ) @sql nvarchar( )    DECLARE @OrigSpText nvarchar( ) @OrigSpText nvarchar( ) @OrigSpText nvarchar( ) @resultsp nvarchar( )    declare @i int @status int @type varchar( ) @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( ) encrypted int status int)    insert #temp SELECT number colid ctext encrypted status FROM sysments WHERE id = object_id(@objectName)    select @number=max(number) from #temp    set @k=     while @k<=@number    begin    if exists(select from sysments where id=object_id(@objectname) and number=@k)    begin    if @type= P     set @sql =(case when @number> then ALTER PROCEDURE + @objectName + ; +rtrim(@k)+ WITH ENCRYPTION AS     else ALTER PROCEDURE + @objectName+ WITH ENCRYPTION AS     end)    if @type= TR     begin    declare @parent_obj varchar( ) @tr_parent_xtype varchar( )    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 @sql = ALTER TRIGGER +@objectname+ ON +OBJECT_NAME(@parentid)+ WITH ENCRYPTION INSTERD OF INSERT AS PRINT     end    else    begin    set @sql = ALTER TRIGGER +@objectname+ ON +OBJECT_NAME(@parentid)+ WITH ENCRYPTION FOR INSERT AS PRINT     end    end    if @type= FN or @type= TF or @type= IF     set @sql =(case @type when TF then     ALTER FUNCTION + @objectName+ (@a char( )) returns @b table(a varchar( )) with encryption as begin insert @b select @a return end     when FN then     ALTER FUNCTION + @objectName+ (@a char( )) returns char( ) with encryption as begin return @a end     when IF then     ALTER FUNCTION + @objectName+ (@a char( )) returns table with encryption as return select @a as a     end)    if @type= V     set @sql = ALTER VIEW +@objectname+ WITH ENCRYPTION AS SELECT as f     set @q=len(@sql )    set @sql =@sql +REPLICATE( @q)    select @sql =REPLICATE( )    set @sql = exec(@sql     select @colid=max(colid) from #temp where number=@k    set @n=     while @n<=CEILING( *(@colid )/ ) and len(@sQL )<=     begin    set @sql =@sql + +@     set @n=@n+     end    set @sql =@sql + )     exec sp_executesql @sql N @sql nvarchar( ) @ varchar( ) @sql =@sql @=@sql     end    set @k=@k+     end    set @k=     while @k<=@number    begin    if exists(select from sysments where id=object_id(@objectname) and number=@k)    begin    select @colid=max(colid) from #temp where number=@k    set @n=     while @n<=@colid    begin    select @OrigSpText =ctext @encrypted=encrypted @status=status FROM #temp WHERE colid=@n and number=@k    SET @OrigSpText =(SELECT ctext FROM sysments WHERE id=object_id(@objectName) and colid=@n and number=@k)    if @n=     begin    if @type= P     SET @OrigSpText =(case when @number> 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 @OrigSpText =(case @type when TF then     CREATE FUNCTION + @objectName+ (@a char( )) returns @b table(a varchar( )) with encryption as begin insert @b select @a return end     when FN then     CREATE FUNCTION + @objectName+ (@a char( )) returns char( ) with encryption as begin return @a end     when IF then     CREATE FUNCTION + @objectName+ (@a char( )) returns table with encryption as return select @a as a     end)    if @type= TR     begin    if @tr_parent_xtype= V     begin    set @OrigSpText = CREATE TRIGGER +@objectname+ ON +OBJECT_NAME(@parentid)+ WITH ENCRYPTION INSTEAD OF INSERT AS PRINT     end    else    begin    set @OrigSpText = CREATE TRIGGER +@objectname+ ON +OBJECT_NAME(@parentid)+ WITH ENCRYPTION FOR INSERT AS PRINT     end    end    if @type= V     set @OrigSpText = CREATE VIEW +@objectname+ WITH ENCRYPTION AS SELECT as f     set @q= len(@OrigSpText )    set @OrigSpText =@OrigSpText +REPLICATE( @q)    end    else    begin    SET @OrigSpText =REPLICATE( )    end    SET @i=     SET @resultsp = replicate(N A (datalength(@OrigSpText ) / ))    WHILE @i<=datalength(@OrigSpText )/     BEGIN    SET @resultsp = stuff(@resultsp @i NCHAR(UNICODE(substring(@OrigSpText @i )) ^ cha138/Article/program/SQLServer/201311/21965

相关参考

知识大全 SQLSERVER存储过程及调用详解

SQLSERVER存储过程及调用详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixin

知识大全 sqlserver 存储过程中If Else的用法实例

sqlserver存储过程中IfElse的用法实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!为

知识大全 Java文件加解密

Java文件加解密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  做网站有时会处理一些上传下载的

知识大全 java RSA 加解密

javaRSA加解密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  importjavasecu

知识大全 SQL Server编写存储过程小工具

SQLServer编写存储过程小工具  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在开发数据库

知识大全 一个简单的oracle分页存储过程的实现和调用

  在看了众多的分页存储过程以后发现都是针对sqlserver的而没有oracle的因此想写一个关于oracle的存储过程因为我用到的数据库是oracleoracle分页存储过程的思路于sqlserv

知识大全 SQL Server加密存储过程的破解问题

SQLServer加密存储过程的破解问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  CREA

知识大全 SQL Server存储过程编程经验技巧

SQLServer存储过程编程经验技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  MS SQ

知识大全 Delphi与SQL Server存储过程编程详解

Delphi与SQLServer存储过程编程详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 SQL Server存储过程编写和优化措施[2]

SQLServer存储过程编写和优化措施[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb