我应该使用 GDB 还是 Radare2 来反转可执行文件(我是初学者)?我尝试用 C 编程,但我得到了 SegFault。我想对它进行逆向工程以获得装配经验,看看我在哪里得到了 SegFault。
问问题
2254 次
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 回答