使用GDB在共享库中按地址设置断点

时间:2013-03-05 04:19:22

标签: gdb shared-libraries

如何按地址在共享库中设置断点?让我们说我反汇编一个库并找到一个我想要破解的指令,但该指令与标签无关:

$ objdump -d libFoo.so

...

bc29a:       48 89 f5                mov    %rsi,%rbp

...

加载库后,将ELF文件地址(bc29a)转换为正确的虚拟地址的最佳方法是什么?如何将这些信息传达给GDB?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

也许最简单的方法是“设置stop-on-solib-events 1”。这将导致gdb在加载或卸载共享库时停止。当它加载你想要的库时,你将能够设置一个断点。

然后,您可以使用“info shared”查看每个库的偏移量。我忘记了这是否是文本部分的偏移量;所以你可能需要尝试一下。