Linux 下“反汇编指令报错”这个问题比较笼统,常见原因一般有下面几类。你可以对照看看是哪一种情况,也方便你补充具体错误信息。
最常见的反汇编命令有:
objdump -d filegdb 里:disassemble / disasndisasm(x86)objdump -D file常见错误示例:
disassemble
报错:
command not found
原因:disassemble 是 gdb 内部命令,不是 shell 命令。
✅ 正确做法:
gdb ./a.out
(gdb) disassemble main
比如你拿一个 .c、.txt、脚本文件去反汇编:
objdump -d test.c
报错类似:
objdump: test.c: file format not recognized
✅ 解决:
gcc test.c -o test
objdump -d test
比如:
报错可能:
Architecture of input file is unknown
✅ 解决:
objdump -d -m arm test
objdump -d stripped_binary
可能反不出来什么,但不一定会“报错”。
如果是:
objdump -d /dev/null
会直接报错。
objdump -d /bin/ls
如果报:
Permission denied
✅ 解决:
sudo objdump -d /bin/ls
例如:
ndisasm shellcode.txt
但文件不是纯机器码。
✅ 正确:
ndisasm -b 32 shellcode.bin
不同报错差很多,例如:
command not foundfile format not recognizedCannot access memory at addressNo symbol table info你可以直接贴:
file xxx 输出)我可以精准告诉你哪里错了。