我正在远程主机上调试易受攻击的应用程序。我已经gbserver
在主机上设置了:
gdbserver host:1234 /my/target/app
在我连接的本地主机上:
$ gdb /same/target/app
gdb$ target extended-remote 192.168.0.100:1234
我连接成功,可以继续在目标指令上设置断点,即:
$gdb disas vuln_function
....
0x08048e6b <+116>: ret
End of assembler dump.
gdb$ b *0x08048e6b
Breakpoint 1 at 0x8048e6b
查看反汇编的函数代码并在主机上对其进行了测试,我 100% 确定我正在中断正确的地址,并且在任何情况下我都会触发缓冲区溢出,该溢出应该自行gdb
中断。
但是没有在我的gdb
客户端上获得通常的断点,没有任何反应。gdbserver
冻结在 BO 上(所以我猜它确实ret
在segfault
. gdb
除了没有在断点上提示我之外,似乎没有崩溃或行为异常。
调试时是否有特殊的方法来设置断点gdbserver
?