好友
阅读权限10
听众
最后登录1970-1-1
|
最近在学习一个游戏辅助软件,查壳为:VMProtect(3.2.0-3.5.0)[-]。
用Detect It Easy3.07查壳
在OD中使用ScyllaHide插件可以正常附加(Attach)游戏,辅助软件也能正常运行。
ScyllaHide插件针对VMP的设置
通过MSSpyXX找到按钮“点击开始认证”的WndProc地址,并在WM_LBUTTONDOWN能到达的地方下F2断点,
随后单击该按钮后,OD没有断下来,出现了一个错误提示框,0x80000003正好是int3异常代码。如果下硬件
执行断点,也断不下来,提示错误代码变为0x80000004,正好是硬件断点异常代码。
请教各位大佬,让硬件断点(DRx)、软件断点(int3)都失效的原理是什么?
开始以为是设置了seh或veh。但是仔细想想,断点异常发生后,调试软件的优先级是最高的,意味着
OD肯定比辅助软件先收到异常消息,这样就能正常断下来。
后来又想到,有监控线程实时检查DRx是否被修改,并及时抹除修改,以便阻止硬件断点。但这个没有
办法抹除软件断点(int3)。并且,辅助软件执行到断点处才提示异常信息框,说明DRx或int3没有被抹除。
实在想不通,请各位大佬指点指点,万分感谢!
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|