|
|
1
12
您需要使用writeprocessmemory将断点(在x86上,操作码为0xcc)写入地址。 在x86上,当调试对象到达代码中的该点时,0xCC将生成一个int 3异常。这是由调试器的waitForDebugEvent获取的,它将返回一个调试事件,但有一个异常的调试事件集。 在继续之前,您需要将该地址修补回其原始代码。如果要再次中断,需要单步执行,然后重新匹配断点操作码。要单步执行,需要在线程上下文中的eflag中设置单步标志。 debugbreakProcess用于生成正在调试的进程的远程中断-它不能用于在代码中的任意点中断。 |
|
|
2
1
Michael是对的——同样,如果你想在连接后在调试器中闯入一个任意的进程(例如,如果用户突然点击“闯入进程”),标准的方法是创建一个远程线程,它的例程发出一个int3。 |