最近研究硬件断点及绕过检测 但遇到了一些问题-.-


尝试方法如下
一.
1.Hook KiUserExceptionDispatcher
2.Hook NTcontinue
3.Hook ZwGetContextThread
2.调用SetThreadContext [msv90]设置新Dr寄存器并保存旧Dr寄存器
3.在调用RtlDispatchException 前还原了[msv90]旧Dr寄存器
4.再调用NTcontinue前 获取[msv90]Context并保存旧Dr寄存器 然后再设回新Dr寄存器
5. On ZwGetContextThread 返回[msv90]旧Dr寄存器 (如果被调用了说明已经被检测到了 这里游戏只是再采集上传我下的哪个断点)
失败告终 不知道什么原因还是被检测了

二.
1.Hook KiUserExceptionDispatcher
2.安装VEH 并接管异常
3.创建一个线程 无限抛C5异常 (我的VEH不处理该异常,反正没崩)
4.invok SetThreadContext 断点
该方法有40%的概率不被检测 也就是说-。- 每次启动程序后如果不被检测 后面随便怎么折腾都可以了 不知道啥原因


请教各位大神 给些提议吧
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课