我是否应该使用GDB或Radare2来逆转可执行文件(我是初学者)?我试着用C语言编程,我得到了一个SegFault。我想反向工程,以获得经验,在组装,并看到我从哪里得到的SegFault。
发布于 2019-11-12 10:29:36
我推荐Radare2,因为它比GDB更清晰,对于初学者更容易;)
发布于 2019-11-12 10:35:07
为了调试您自己从源构建的可执行文件,GDB将用作调试器。如果查看C变量没有帮助,您可以使用layout reg
获取反汇编+寄存器视图,该视图可以帮助理解分段错误。
使用gcc -g
编译的调试信息意味着您不需要逆向工程任何东西,只需使用普通的调试器即可。但是要获得asm方面的经验,同时使用调试器(源视图和asm视图)可以帮助您理解编译器如何使用特定的asm指令来实现每个C语句。因此,您肯定需要一个可以利用调试信息的调试器。有一些GUI GDB前端,比如https://www.gdbgui.com,它们比命令行GDB更容易使用。
,但更多有关C如何编译为asm.的信息,请参见 。
我还没用过radare2。我假设它有一些特性可以用来故意混淆没有源代码的可执行文件,这与用普通编译器编译自己的C程序正好相反。
https://stackoverflow.com/questions/58824623
复制相似问题