jmp 1f
push %eax
1:
movl $100, (%eax)
call __debugbreak
int3
ret
假设我们希望把推送%EAX指令断点。我们可以做到这一点通过重写推%eax中与通话的DebugBreak?什么是上述方法的问题?为什么用INT3工作改写在这种情况下?
int3
是一个单字节指令(因此是在这种情况下push
)。 call
不是。您jmp
会跳进call
的“中间”,如果你有push
而不是call
覆盖你int3
。但是,除非有到达push
的方式(我没有看到它的标签跳前/调用),把一个断点push
是没用的,不是吗?