[Linux] 反汇编命令及elf,bin,hex之间的转换

汇编:把汇编代码翻译成二进制机器代码
反汇编:把二进制机器代码翻译成汇编代码
汇编和反汇编是互逆的过程

1. 安装交叉编译工具链

ARM:

sudo apt-get install gcc-arm-linux-gnueabi

ARM64:

sudo apt-get install gcc-aarch64-linux-gnu

RISCV:

sudo apt-get install gcc-riscv64-linux-gnu

下面用riscv64的cross-compiler举例:

2. objdump将a.elf 文件反汇编为asm或lst文件

将a.elf 文件反汇编为asm

riscv64-linux-gnu-objdump -S spl/u-boot-spl > spl.asm

将a.elf 文件反汇编为lst文件

.lst这一扩展名指的是“LiST”,通常指由文本信息构成的列表文件。该扩展名指的是此类文件的功能,而非格式。
.lst文件通常是可读的纯文本文件,可利用文本编辑程序进行编辑。通常可将TXT文件用作LST列表(与扩展名修改与否无关)。在某些情况下,应用程序会自动创建并引用LST文件,因此无需对此类文件进行修改。

riscv64-linux-gnu-objdump --source --all-headers --demangle --file-headers --line-numbers --wide a.elf > a.lst

3. objcopy将elf文件转换为bin文件,将bin文件转换为hex文件

将a.out转换成a.bin

riscv64-linux-gnu-objcopy -O binary a.out a.bin

将a.bin转换成a.hex

riscv64-linux-gnu-objcopy -I binary -O ihex a.bin a.hex
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山猫Show

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值