显示执行期间正在使用的寄存器和内存位置的工具?

逆向工程 艾达 拆卸 反编译 二元分析 数据库
2021-06-12 01:33:22

我正在寻找类似的东西,gdb但也许有一个 GUI 可以显示所有寄存器的当前值以及内存的当前值和堆栈上的东西?免费软件是首选。我有一个免费版本的 IDA 和 Kali Linux 附带的任何东西。它是一个被剥离的 ELF 文件。

4个回答

也许你应该试试DDD这是一个GUIGDB有很多的,简化调试初学者和专家太大的特点。不过我必须警告你,如果你的二进制文件被剥离,最重要的是方法论。如果存在调试符号,大多数调试器都非常高效(在 的情况下ELF,这DWARF是您需要检查的)。如果没有调试符号,您所能做的就是逐步检查代码,在汇编代码看起来很有趣的位置设置断点。

你必须知道逆向工程是一个挑战,不是一件容易的事,而且没有什么神奇的工具。所有工具都依赖于算法,不幸的是,算法并非完美无缺。反汇编器可能会失败,反编译器可能会偶然发现它们无法转化为高级代码的模式,等等。

您必须开发一种方法,您必须根据经验对其进行调整。这样你就可以培养良好的倒车技巧。同时,论坛对问题开放,希望与答案一样准确和简洁。

gdb 有一个

text user interface 

可以layout在运行的 gdb 实例中使用命令激活,或者--tui在启动时使用命令行开关激活

将显示寄存器和程序集

我猜这将是最便宜的选择:)

以下命令应提供概览 tui 布局拆分;布局规则;布局 asm ; layout src ;layout next; 布局上一个;

除了已经提到的带有 Qt 框架的 DDD EDB 还可以查看EDB (EVANS Debugger)

PEDA是一个gdb插件,可以显示当前进程状态:

  • 堆栈内容
  • 注册内容
  • 程序计数器附近的指令

输出是漂亮和彩色的。

peda 会话截图

还有许多其他功能,例如查找 ROP 小工具、显示 elf 标头、显示已启用的缓解措施(ASLR、DEP、RELRO,...)

cgdb 是一个基于 curses 的 gdb 接口,值得一看:

https://cgdb.github.io/