CentOS 反汇编指令学习资源与速查
一 核心工具与安装
二 常用命令速查表
| 工具 | 典型用途 | 常用命令示例 | 关键要点 |
|---|---|---|---|
| objdump | 反汇编、查看节与符号 | objdump -d a.out;objdump -D a.out;objdump -S a.out;objdump -t a.out;objdump -x a.out | -d 反汇编可执行段;-D 反汇编所有段;-S 源码与汇编混合(需编译时加 -g);-t 显示符号表;-x 显示全部头部信息 |
| readelf | 查看 ELF 头、节表、程序头等 | readelf -a a.out | 辅助定位节区、入口地址、依赖库等结构信息 |
| nm | 列出符号表 | nm -a a.out | 快速查看函数与变量符号,配合 objdump 定位 |
| gdb | 动态调试与按需反汇编 | gdb ./a.out;(gdb) disassemble; (gdb) disassemble main; (gdb) break main; (gdb) run; (gdb) step | 支持断点、单步、寄存器/内存查看,适合运行时分析 |
| radare2 | 开源逆向框架 | r2 a.out;[0x…]> pdf @ main | 反汇编视图、图形化 CFG、脚本化分析能力较强 |
| 以上命令覆盖了日常反汇编与结构分析的高频场景,适合在 CentOS 环境快速上手与排查。 |
三 入门实践流程
.section .data
hello: .string "Hello, World!\n"
.section .text
.globl _start
_start:
mov $1, %rax # sys_write
mov $1, %rdi # stdout
mov $hello, %rsi # 消息地址
mov $14, %rdx # 长度
syscall
mov $60, %rax # sys_exit
xor %rdi, %rdi # 返回值 0
syscall
四 进阶学习与排错