假設一個調試器(常見的x86 ring3調試器,如olly,IDA,gdb等)將軟件斷點設置爲虛擬地址0x1234。調試器如何從斷點恢復?
,這是通過在0x1234的更換任何操作碼「的0xCC」 現在讓我們假設調試進程完成運行這個指令的0xCC並引發 軟件異常和調試器捕獲此。
調試器檢查存儲器內容,註冊並做一些事情..現在它想要恢復進程的debugee進程。
這是據我所知。從現在開始,這是我的假設。
調試器恢復原來的操作碼(已被替換爲0xCC) 歹徒爲了恢復執行。
調試程序操縱debugee's CONTEXT的EIP指向 恢復的指令。
調試器處理異常,現在,惡魔從斷點恢復。
但調試器希望斷點保持不變。 調試器如何管理這個?
好問題。我猜測片上調試器支持硬件必須幫助解決這個問題。 – 2013-03-26 18:04:33