设置 lldb 断点相对于 ASLR 幻灯片

逆向工程 断点 数据库 抵消
2021-06-19 18:49:21

我想在文件内的偏移处设置断点。

如果我启动应用程序,检查它的加载位置,image list testapp然后添加二进制文件中我想要断点的位置的偏移量,我可以做到这一点,例如:

breakpoint set -a 0x10100cff4

有没有一种方法可以让我一次性设置断点,而无需先检查它加载的偏移量,这样我就可以更轻松地自动执行任务。例如类似于:

breakpoint set -a ((image list -o testapp)+0x100168ff4)

我怀疑我可以用 Python 做到这一点,但是目前在 Ubuntu 上对我不起作用,所以我更喜欢用 lldb 命令来完成的方式。

或者,我可以添加一个断点:

breakpoint set --name function_name

但这只是我想中断的一条指令,因此仍然需要向该地址添加一个偏移量,因为我然后有一个命令,该命令在到达时执行然后恢复。

谢谢

1个回答

这可以通过以下命令实现:

breakpoint set -a 0x100168ff4 -s testapp

与 from lldb's 一样help breakpoint add,当您使用-s以下地址或表达式指定模块-a

将被视为该模块中的文件地址,并相应地解析。同样,这将允许 lldb 在后续重新加载时跟踪该偏移量。模块在您指定此断点时不必加载,并且将在加载模块时解析。

非常感谢Scott Knight在这方面的指点。