我有一个可执行文件和可执行文件使用的剥离 lib.so
文件。
我已经反编译lib.so
文件并定义了函数fun
我想设置断点及其内部地址。
是否可以使用gdb在函数fun
上设置断点?
如何在运行时定义fun
的地址?
答案 0 :(得分:1)
是否可以使用gdb在函数
fun
上设置断点?
是:GDB可以在任意地址上设置断点:
(gdb) break *0x12345678
如何在运行时定义乐趣的地址?
由于GDB默认禁用ASLR,因此fun
的地址不会在运行之间发生变化(假设您从一开始就在GDB下运行程序)。
因此,您只需要找到fun
一次的地址。
我们假设您的lib.so
与0
相关联(大多数非预先链接的共享库)。
进一步假设你在Linux上。
然后info proc map
将告诉您lib.so
的加载位置(您希望第一个起始地址属于它)。将该起始地址添加到您通过反汇编找到的fun
值,并在那里设置断点。