解密SQL Server存储过程等对象
解密SQL Server存储过程等对象 这个版本综合了前辈 王成辉翻译的版本 和 另外一个不知道出处的版本,在他们的基础上增加了 对内联和多语句表值函数(IF和TF)的解密。 虽然修改部分没多少技术含量,还是分享出来。^_^ -- ==================================
解密SQL Server存储过程等对象
这个版本综合了前辈 王成辉翻译的版本 和 另外一个不知道出处的版本,网站空间,香港服务器租用,在他们的基础上增加了 对内联和多语句表值函数(IF和TF)的解密。
虽然修改部分没多少技术含量,还是分享出来。^_^
-- ============================================= --王成辉翻译整理,转贴请注明出自微软BI开拓者 --增加对表值函数的解密功能by wofei --. ( @ObjectName VARCHAR(200), ) ((50) , @t bigint, ((max), @fake_01 nvarchar(max), @fake_encrypt_01 nvarchar(max), (max) (2),@ParentName nvarchar(max) type,(parent_object_id) (@ObjectName) (imageval subobjid) #output ( (1, 1) NOT NULL , (MAX) ) WITH ENCRYPTION AS select 1 /**//*(() WITH ENCRYPTION AS select 1 as col /**//*((),16,10) /**//*(()() RETURNS INT WITH ENCRYPTION AS BEGIN RETURN 1 /**//*(()() RETURNS TABLE WITH ENCRYPTION AS RETURN (SELECT 0 AS col) /**//*(()() RETURNS @Temp TABLE(ID INT) WITH ENCRYPTION AS BEGIN RETURN /**//*(()(@fake_01) (imageval subobjid ) WITH ENCRYPTION AS select 1 /**//*(() WITH ENCRYPTION AS select 1 as col /**//*((),16,10) /**//*(()() RETURNS INT WITH ENCRYPTION AS BEGIN RETURN 1 /**//*(()() RETURNS TABLE WITH ENCRYPTION AS RETURN (SELECT 0 AS col) /**//*(()() RETURNS @Temp TABLE(ID INT) WITH ENCRYPTION AS BEGIN RETURN /**//*(()((max)), (datalength(@real_01) /2 )) (datalength(@real_01)/2) (@real_decrypt_01, @intProcSpace, 1, NCHAR(UNICODE(substring(@real_01, @intProcSpace, 1)) ^ (UNICODE(substring(@fake_01, @intProcSpace, 1)) ^ UNICODE(substring(@fake_encrypt_01, @intProcSpace, 1))))) #output (real_decrypt) --开始从sp_helptext提取 -- sysname ,@BlankSpaceAdded int ,@BasePos int ,@CurrentPos int ,@TextLength int ,@LineId int ,@AddOnLen int ,,@DefinedLength int ,@SyscomText nvarchar(max) ,@Line nvarchar(255) #CommentText (LineId int,Text nvarchar(255) collate database_default) ms_crs_syscom CURSOR LOCAL FOR SELECT real_decrypt from #output ORDER BY ident ms_crs_syscom ms_crs_syscom (@SyscomText) (char(13)+char(10), @SyscomText, @BasePos) () (isnull(LEN(@Line),0) + @BlankSpaceAdded) INSERT #CommentText VALUES ( @LineId,isnull(@Line, N'') + isnull(SUBSTRING(@SyscomText,@BasePos, @AddOnLen), N'')) , ,, (), N'') #CommentText VALUES( @LineId, @Line ) () (isnull(LEN(@Line),0) + @BlankSpaceAdded) INSERT #CommentText VALUES ( @LineId,isnull(@Line, N'') + isnull(SUBSTRING(@SyscomText, @BasePos, @AddOnLen), N'')) , , , (), N'') () , ms_crs_syscom #CommentText VALUES( @LineId,@Line) ms_crs_syscom DEALLOCATE ms_crs_syscom ( LineId DROP TABLE #CommentText -- ------------------------------------- --结束从sp_helptext提取 -- #output TRY (@sql) (@PROTEXT) TRY BEGIN CATCH PRINT ERROR_MESSAGE() CATCH
posted on
,香港服务器上一篇: PHP 将连续的汉语拼音分隔开
下一篇: MySQL客户端不支持鉴定协议的解决方法
推荐阅读
-
SQL Server存储过程生成insert语句实例
-
如何在SQL SERVER 2005存储过程中,使用循环语句
-
SQL Server 2005通用分页存储过程及多表联接应用
-
SQL Server中查找包含某个文本的存储过程
-
SQL Server 存储过程 数组参数 (How to pass an array into a SQL Server stored procedure)
-
sql server中千万数量级分页存储过程代码
-
SQL Server存储过程输入参数使用表值
-
Exec msdb.dbo.sp_send_dbmail 参数详解(SQL Server 存储过程发邮件)
-
sql server2008调试存储过程的完整步骤
-
SQL Server函数与存储过程 计算时间