今年情人节大家在论坛可真的过得惊心动魄啊
在老V的带领下率先爆出AGP源码,
陆续各路牛人都来抢一出风头, 又重量级猛爆过反调试源码.
我都一一膜拜地下载了拜读, 总结下我的学习笔记。
首先爆出的2款是基于VT的, AGP和Ddvp。
对于VT我没什么研究, 个人理解核心就是利用VT技术对各种调试异常中断进行拦截.
然后爆出的有PassTP,Local_LaoSys,BypassHP等三款,
这三款的核心都是把wrk里的windows应用程序调试子系统dbgk的代码扣出来,
修改了获取DebugPort的方式, 然后再inline hook原来的dbgk子系统相关函数,
转入修改后的dbgk子系统里执行。
最后还有个EasyDebugger, 这个是直接Patch内核里所有的DebugPort偏移,
貌似TP现在已经开始检测了,不好使了。
刚才仔细看了下AGP, AGP并没有使用VT来实现调试子系统机制,AGP也是扣的Dbgk的代码然后inline hook原内核。 AGP是利用了VT实现了个"超级断点", 这个不太了解。
而Ddvp的前半部分和AGP类似, 也是inline hook了Dbgk那几个函数, 后面Ddvp利用VT拦截了int 1, int 3中断, 但是拦截到之后具体怎么处理没搞明白。
这和我之前想象的利用VT对异常中断进行拦截, 然后包装成Msg直接Queue到自定义的DebugObject有些不一样。
以上只是个人愚见, 希望和各路大牛一起交流交流.
在老V的带领下率先爆出AGP源码,
陆续各路牛人都来抢一出风头, 又重量级猛爆过反调试源码.
我都一一膜拜地下载了拜读, 总结下我的学习笔记。
首先爆出的2款是基于VT的, AGP和Ddvp。
对于VT我没什么研究, 个人理解核心就是利用VT技术对各种调试异常中断进行拦截.
然后爆出的有PassTP,Local_LaoSys,BypassHP等三款,
这三款的核心都是把wrk里的windows应用程序调试子系统dbgk的代码扣出来,
修改了获取DebugPort的方式, 然后再inline hook原来的dbgk子系统相关函数,
转入修改后的dbgk子系统里执行。
最后还有个EasyDebugger, 这个是直接Patch内核里所有的DebugPort偏移,
貌似TP现在已经开始检测了,不好使了。
刚才仔细看了下AGP, AGP并没有使用VT来实现调试子系统机制,AGP也是扣的Dbgk的代码然后inline hook原内核。 AGP是利用了VT实现了个"超级断点", 这个不太了解。
而Ddvp的前半部分和AGP类似, 也是inline hook了Dbgk那几个函数, 后面Ddvp利用VT拦截了int 1, int 3中断, 但是拦截到之后具体怎么处理没搞明白。
这和我之前想象的利用VT对异常中断进行拦截, 然后包装成Msg直接Queue到自定义的DebugObject有些不一样。
以上只是个人愚见, 希望和各路大牛一起交流交流.