GDB 还是 Radare2?
GDB or Radare2?
我应该使用 GDB 还是 Radare2 来逆向可执行文件(我是初学者)?
我尝试用 C 编程,但遇到了 SegFault。我想对其进行逆向工程以获得汇编方面的经验并查看我从何处获得段错误。
我会推荐 Radare2,因为它比 GDB 更清晰,对初学者来说更容易 ;)
对于调试您自己从源代码构建的可执行文件,GDB 旨在用作调试器。如果查看 C 变量没有帮助,您可以使用 layout reg
获得反汇编 + 寄存器视图,这有助于理解段错误。
使用 gcc -g
编译的调试信息意味着您不需要进行任何逆向工程,只需使用普通调试器即可。但是要获得 asm 经验,使用调试器的两种方式(源代码视图和 asm 视图)可以帮助您了解编译器如何使用某些 asm 指令来实现每个 C 语句。所以你肯定想要一个可以利用调试信息的调试器。有一些 GUI GDB 前端,比如 https://www.gdbgui.com 比命令行 GDB 更容易使用。
但另请参阅 以了解有关 C 如何编译为 asm 的更多信息。
我没用过radare2。我认为它具有适用于没有源代码的有意混淆可执行文件的功能,这与使用普通编译器编译自己的 C 程序所具有的功能相反。
我应该使用 GDB 还是 Radare2 来逆向可执行文件(我是初学者)? 我尝试用 C 编程,但遇到了 SegFault。我想对其进行逆向工程以获得汇编方面的经验并查看我从何处获得段错误。
我会推荐 Radare2,因为它比 GDB 更清晰,对初学者来说更容易 ;)
对于调试您自己从源代码构建的可执行文件,GDB 旨在用作调试器。如果查看 C 变量没有帮助,您可以使用 layout reg
获得反汇编 + 寄存器视图,这有助于理解段错误。
使用 gcc -g
编译的调试信息意味着您不需要进行任何逆向工程,只需使用普通调试器即可。但是要获得 asm 经验,使用调试器的两种方式(源代码视图和 asm 视图)可以帮助您了解编译器如何使用某些 asm 指令来实现每个 C 语句。所以你肯定想要一个可以利用调试信息的调试器。有一些 GUI GDB 前端,比如 https://www.gdbgui.com 比命令行 GDB 更容易使用。
但另请参阅
我没用过radare2。我认为它具有适用于没有源代码的有意混淆可执行文件的功能,这与使用普通编译器编译自己的 C 程序所具有的功能相反。