如何使用gdb在剥离共享库的函数上设置断点?
我有一个可执行文件和剥离的如何使用gdb在剥离共享库的函数上设置断点?,gdb,shared-libraries,reverse,decompiling,disassembly,Gdb,Shared Libraries,Reverse,Decompiling,Disassembly,我有一个可执行文件和剥离的lib。所以可执行文件使用的文件。 我已经反编译了lib.so文件并定义了函数fun我想设置断点及其内部地址 是否可以使用gdb在函数fun上设置断点? 如何在运行时定义fun的地址 是否可以使用gdb在函数fun上设置断点 是:GDB可以在任意地址上设置断点: (gdb) break *0x12345678 如何在运行时定义fun的地址 由于GDB默认禁用ASLR,因此fun的地址不会因运行而改变(假设您从一开始就在GDB下运行程序) 因此,您只需找到fun的地址一
lib。所以
可执行文件使用的文件。
我已经反编译了lib.so
文件并定义了函数fun
我想设置断点及其内部地址
是否可以使用gdb在函数fun
上设置断点?
如何在运行时定义fun
的地址
是否可以使用gdb在函数fun
上设置断点
是:GDB可以在任意地址上设置断点:
(gdb) break *0x12345678
如何在运行时定义fun的地址
由于GDB默认禁用ASLR,因此fun
的地址不会因运行而改变(假设您从一开始就在GDB下运行程序)
因此,您只需找到fun
的地址一次
假设您的lib.so
链接在0
(大多数未预链接的共享库都是)
进一步假设您在Linux上
然后
info proc map
将告诉您lib.so
的加载位置(您需要属于它的第一个起始地址)。将该起始地址添加到通过反汇编找到的fun
值中,并在那里设置断点。非常感谢我的朋友!你救了我一天:)