“CentOS 反汇编报错”这个说法比较笼统,我需要先分情况帮你定位。你可以对照下面几种常见场景 + 解决办法看看是哪一种。
objdump 反汇编报错objdump: command not foundFile format not recognizedInvalid operationyum install -y binutils
file your_file
确认是:
objdump -d your_binary
objdump -d -M intel your_binary
gdb 反汇编报错No symbol table infoCannot access memory at address(gdb) disassemble 无输出gcc -g -o test test.c
disassemble main
disassemble /m main
strip 过,只能看到地址,看不到符号:file your_binary
解决:重新编译不 strip
ndisasm 反汇编报错ndisasm: command not foundyum install -y nasm
ndisasm -b 32 file.bin
⚠️ 注意:ndisasm 不能反汇编 ELF 文件
objdump 反汇编静态/ stripped 二进制报错objdump: can't disassembleobjdump -d -M intel --no-show-raw-insn binary
或用:
gdb binary
(gdb) set disassembly-flavor intel
(gdb) disassemble
| CentOS 版本 | 注意点 |
|---|---|
| CentOS 6 | binutils 很老,不支持新指令 |
| CentOS 7 | 基本够用 |
| CentOS 8 | 已停止维护,建议换 Rocky/Alma |
升级 binutils(如需要):
yum install -y binutils-dev
你可以直接发:
cat /etc/centos-release
我可以直接告诉你是哪一步错了、怎么改。