GDB还是Radare2?

MP1*_*P13 2 debugging assembly gdb reverse-engineering radare2

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

Pet*_*des 6

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

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

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

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

  • 公平地说,RE 类型工具提供的许多功能也非常适合探索非混淆编译的二进制文件。人们还可以将优化的二进制文件视为一种混淆:)。也就是说,我尝试了 Radare2 一段时间,但从未变得有能力。学习曲线......陡峭。 (2认同)