CentOS 作为 RHEL 系列的 Linux 发行版,反汇编(Disassembly)通常是 逆向工程、调试、漏洞分析、内核学习 的一部分。下面按常见实战场景给你一些 CentOS 下的反汇编实例,从简单到进阶,基本都能直接照着做。
# 安装常用工具
sudo yum install -y gcc gdb binutils objdump strace ltrace nasm
可选(强烈推荐):
sudo yum install -y radare2
// hello.c
#include <stdio.h>
int main() {
printf("Hello CentOS\n");
return 0;
}
gcc -g -o hello hello.c
objdump -d hello
重点看:
main:
push rbp
mov rbp,rsp
...
call puts@plt
✅ 这是最经典的反汇编入门实例
gdb ./hello
常用命令:
disassemble main
或:
set disassembly-flavor intel
disassemble main
✅ 适合分析 函数调用、参数传递、栈结构
; write.asm
section .data
msg db "Hello",10
len equ $ - msg
section .text
global _start
_start:
mov rax, 1 ; sys_write
mov rdi, 1 ; stdout
mov rsi, msg
mov rdx, len
syscall
mov rax, 60 ; sys_exit
xor rdi, rdi
syscall
nasm -f elf64 write.asm
ld -o write write.o
objdump -d write
✅ 常用于 内核、Shellcode、漏洞利用分析
readelf -h hello
readelf -S hello
objdump -d hello
重点分析:
.text 段.plt / .got✅ 常用于 二进制分析、恶意程序分析
objdump -d /lib64/libc.so.6 | less
搜索:
system
execve
printf
✅ 常用于:
objdump -d /boot/vmlinux-$(uname -r)
或模块:
objdump -d *.ko
✅ 用于:
radare2 -A ./crackme
常用命令:
pdf @ main
✅ 用于:
| 工具 | 用途 |
|---|---|
| objdump | 静态反汇编 |
| gdb | 动态调试 |
| radare2 | 高级逆向 |
| strace | 系统调用跟踪 |
| ltrace | 库函数跟踪 |
如果你愿意,我可以:
你更偏向 学习 / 安全 / 内核 / 运维排查 哪一类?