XAntiDebug2 ( 终极反调试 )
本帖最后由 xjun 于 2017-10-30 23:17 编辑这个反调试方法是逆向的最新的VMP3.1.2(build886)里面的,并且VMP只有特定条件才会触发这个终极反调试。
鄙人觉得这个反调试仍有很大改进空间,就把运用在最新版VMP里面反调试方法逆向出来加强了很多。
这个BUG级的反调试方法基本反掉市场上所有反调试插件(不走正常调试流程的除外)。
//////////////////////////////////////////////////////////////////////////////////////////////////
更新一个版本。前面那个版本代码判断写的太严谨,导致了有很多方法可绕过,这个版本才发挥了其精髓。
本帖最后由 xjun 于 2017-11-3 23:07 编辑
20120427 发表于 2017-11-3 21:30
检测调试器还是使用了 ZwQueryInformationProcess 查询调试对象, 正常情况下 最后一个参数ReturnLength应 ...
你没理解到真正原理。。这个只有逆过内核或者看过微软的开源内核源码WRK的才知道。
WRK源码一直到WIN10内核处理的时候
最后都是 *ReturnLength = sizeof(HANDLE), 而所有反调试插件都是直接把这个参数置0,而参数三(processInformation)和参数五(returnLength)为同一个地址时候,就可以检测出是否被插件处理了。 本帖最后由 20120427 于 2017-11-3 21:32 编辑
检测调试器还是使用了 ZwQueryInformationProcess 查询调试对象, 正常情况下 最后一个参数ReturnLength应该返回4, 但是如果第三个参数ProcessInformation的值同时也是最后一个参数的值,就出现问题了。。。。。。。
而吾爱OD的驱动直接把第三个参数ProcessInformation的返回值赋值为0 这就导致最后一个参数ReturnLength变成0了
原来的: 不在ntdll.dll内存里的ZwQueryInformationProcess函数
被我修改后的:
运行后的:事实证明确实如此
{:1_918:} 你的检测方法已利用 wekabc 发表于 2017-10-31 14:36
测试自己的反调试,SE的反调试就没必要开了吧
这个嘛,我加的se默认保护。 本只想用se壳 shadow下调用的api。 本帖最后由 xjun 于 2017-10-29 22:33 编辑
OD确实有个别人改版的 伪调试插件叫做naiheqiao,伪调试原理是不走的正常调试流程的。
如果你不是用的伪调试方法,或者挂起线程啊,修改程序流程之类的,那我只能膜拜了。
https://github.com/stonedreamforest/NaiHeQiao 遇强则强 还是能过的 {:1_909:}
其实,偶到是更想知道方法 VT···················· 附加也不行,也被检测到。 魔弑神 发表于 2017-10-29 22:07
遇强则强 还是能过的
用的什么插件啊 魔弑神 发表于 2017-10-29 22:07
遇强则强 还是能过的
你是怎么做到的 zbnysjwsnd8 发表于 2017-10-29 22:12
你是怎么做到的
我并不是挂起线程 你可以配置插件 还是能过的 魔弑神 发表于 2017-10-29 22:22
我并不是挂起线程 你可以配置插件 还是能过的
插件反调试全都关了吗