在 CentOS 上进行反汇编(disassembly),通常依赖以下几种常见工具和命令。下面按“去哪找 / 用什么”来说明:
objdump(最常用)包名:binutils
which objdump
# 一般在 /usr/bin/objdump
# 安装(如果没有)
sudo yum install binutils
基本用法:
objdump -d 可执行文件
objdump -d -M intel 可执行文件 # Intel 语法
gdb(调试 + 反汇编)包名:gdb
which gdb
sudo yum install gdb
反汇编用法:
gdb ./a.out
(gdb) disassemble main
(gdb) disassemble /m main # 混合源码
readelf(查看节区和符号,辅助反汇编)sudo yum install binutils
readelf -S 可执行文件
nm(看符号)nm 可执行文件
反汇编出来的指令是 CPU 架构相关的,例如:
mov, call, ret, jmpldr, str, bl这些“指令含义”要去:
objdump 不够用时sudo yum install radare2
CentOS 上反汇编,先看
objdump(binutils)和gdb,指令含义看 CPU 手册。
如果你愿意,可以告诉我:
我可以直接给你对应命令示例。