2

我应该使用 GDB 还是 Radare2 来反转可执行文件(我是初学者)?我尝试用 C 编程,但我得到了 SegFault。我想对它进行逆向工程以获得装配经验,看看我在哪里得到了 SegFault。

4

2 回答 2

6

为了调试您自己从源代码构建的可执行文件,GDB 旨在用作调试器。layout reg如果查看 C 变量没有帮助,您可以使用反汇编 + 寄存器视图来帮助理解段错误。

来自编译的调试信息gcc -g意味着您不需要对任何东西进行逆向工程,只需使用普通调试器即可。但是要获得 asm 的经验,同时使用调试器(源视图和 asm 视图)可以帮助您了解编译器如何使用某些 asm 指令来实现每个 C 语句。所以你肯定想要一个可以利用调试信息的调试器。有一些 GUI GDB 前端,例如https://www.gdbgui.com,它比命令行 GDB 更容易使用。

但另请参阅如何从 GCC/clang 程序集输出中删除“噪音”?有关查看 C 如何编译为 asm 的更多信息。

我没用过radare2。我认为它具有适合故意混淆的无源可执行文件的功能,这与使用普通编译器编译自己的 C 程序所具有的功能相反。

于 2019-11-12T18:35:07.770 回答
3

我会推荐 Radare2,因为它比 GDB 更清晰,对初学者更容易;)

于 2019-11-12T18:29:36.083 回答