“CentOS 反汇编错误”这个说法比较笼统,一般是在用 gdb / objdump / radare2 / IDA 等工具做反汇编或调试时出错。下面按常见场景 + 解决办法给你梳理,你可以对号入座。
objdump: can't disassemble / 不支持架构objdump -d test
# can't disassemble for architecture
# 查看文件架构
file test
# 安装对应架构工具
yum install binutils-aarch64-linux-gnu
# 或
yum install binutils-arm-linux-gnu
# 使用交叉反汇编
aarch64-linux-gnu-objdump -d test
Cannot access memory at address(gdb) disassemble
Cannot access memory at address 0x...
# 关闭 PIE(编译时)
gcc -no-pie -fno-pie test.c
# gdb 中
info proc mappings
start
disassemble main
(gdb) disassemble main
No symbol table info available
# 编译加 -g
gcc -g test.c
# 或安装 debuginfo
debuginfo-install glibc
# 临时关闭 ASLR
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
# 或 gdb 中
set disable-randomization on
objdump -d
readelf -S
请直接把完整报错 + 命令 + 架构发我,比如:
CentOS 7
objdump -d a.out
报错:...
file a.out 输出:...
我可以直接帮你定位。