欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

反StrongOD的原理和实例

反StrongOD的原理和实例

反StrongOD.dll的原理和实例:
还是采用FD_DebugObject_NtQueryObject反调试,不过换个写法就可以过StrongOD。
FD_DebugObject_NtQueryObject原理是这样的:当调试会话创建,将产生一个调试对象,我们通过ntdll中的NtQueryObject函数参看调试对象的个数是否不为零,来确定调试器的存在。《【原创】软件保护壳技术专题 - 反调试器技术》(http://bbs.pediy.com/showthread.php?t=71113)中的FD_DebugObject_NtQueryObject通过循环遍历ObjectTypeInformation对比类型的名字,如有类型名为DebugObject,则检测TotalNumberofHandles与TotalNumberofObjects,如果不为0则存在调试器。
StrongOD.dll里的fengyue.sys驱动HOOK了ntdll中的ZwQueryObject,在XP系统里他只是简单的把DebugObject对象类型隐藏了,通过搜索DebugObject字符,如果不存在就说明有调试器。如果存在并且TotalNumberofHandles不为0就说明也存在调试器。在WINDOWS 7中StrongOD.dll好象没把DebugObject对象类型隐藏。
当你用OD打开一个程序,同时运行ceshi.exe,会提示“debug?”.或者当你在OD里运行ceshi.exe,也会提示“debug?”,可以过最新的StrongOD.dll。当双击ceshi.exe,在没有OD打开的情况下,会出现“fun!”。
本程序是在OD里用shellcode格式写的。在XP中的SP2、SP3和WINDOWS 7中测试通过。欢迎讨论。

上传的附件 ceshi.rar

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功