如何使用gdb对运行另一个程序的ELF进行反向工程?

时间:2012-11-29 03:40:34

标签: gdb reverse-engineering

我是初学者,在RE中遇到了一些麻烦。 我有一个ELF'炸弹'和一个未知文件'model.abc'。 运行炸弹的正确方法是:

bomb model.abc

现在我想在运行它时使用gdb查看某些地址的值。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

首先从shell提示符启动gdb

$ gdb bomb

然后使用您想要的命令行从(gdb)提示符运行程序:

(gdb) run model.abc

您需要以这种方式启动程序,因为gdb不允许您在gdb命令行上为 程序指定命令行参数。

答案 1 :(得分:1)

使用参数调试程序的另一种更方便的方法:

gdb --args program <arguments>

如果您没有符号,则必须从入口点开始。要计算我们的位置,请使用:

(gdb) info file
Symbols from "/.../tesprog".
Local exec file:
    `/.../tesprog', file type elf32-i386.
    Entry point: 0x804abc0

然后你可以在运行之前在它上面设置断点:

break *0x804abc0

请注意,该条目通常是库启动代码(ctr0.s),可能需要一段时间才能获得程序员编写的实际代码。