网站Logo 网友马大帅的博客

debug教程

ughostx
12
2026-02-05

常用的调试手段

反汇编

objdump

以rtos为例,编译后会生成RTOSDemo.elf。elf文件里面是带有符号表信息的,也可以用于启动。通过gcc工具链(objdump)反汇编该文件,生成反汇编文件(dis)用于调试

riscv32-unknown-elf-objdump -d -M no-aliases,numeric RTOSDemo.elf > RTOSDemo.dis

dis文件内容:

可以从elf文件中直接提取bin文件,用于直接启动

riscv32-unknown-elf-objcopy -O binary RTOSDemo.elf RTOSDemo.bin

Radare2

Radare2(常简写为 r2)是一款开源的、跨平台的逆向工程框架和二进制分析工具套件,以其命令行驱动、高度可定制和脚本化的特性著称

使用如下指令分析文件:

r2 RTOSDemo.elf

默认可以使用AAA指令执行自动分析所有符号表

cutter

Cutter 是一款基于 Rizin(由 Radare2 分支而来)的现代化、开源的逆向工程平台和反汇编工具。它提供了图形用户界面(GUI),使得逆向工程任务更加直观和高效,尤其适合不习惯纯命令行操作的用户。

使用如下指令分析文件:

cutter RTOSDemo.elf

界面如下:

动物装饰