假设一个调试器(常见的x86 ring3调试器,如olly,IDA,gdb等)将软件断点设置为虚拟地址0x1234。调试器如何从断点恢复?
,这是通过在0x1234的更换任何操作码“的0xCC” 现在让我们假设调试进程完成运行这个指令的0xCC并引发 软件异常和调试器捕获此。
调试器检查存储器内容,注册并做一些事情..现在它想要恢复进程的debugee进程。
这是据我所知。从现在开始,这是我的假设。
调试器恢复原来的操作码(已被替换为0xCC) 歹徒为了恢复执行。
调试程序操纵debugee's CONTEXT的EIP指向 恢复的指令。
调试器处理异常,现在,恶魔从断点恢复。
但调试器希望断点保持不变。 调试器如何管理这个?
好问题。我猜测片上调试器支持硬件必须帮助解决这个问题。 – 2013-03-26 18:04:33