欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

解密SQL Server存储过程等对象

程序员文章站 2022-06-06 13:45:36
...

解密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

,香港服务器