温馨提示×

如何抓取centos反汇编指令

小樊
40
2026-09-03 03:16:27
栏目: 智能运维

CentOS 上抓取(查看)反汇编指令,常见场景有:反汇编二进制文件反汇编正在运行的进程内核或模块反汇编。下面按实用场景给你一套方法。


一、反汇编二进制文件(最常用)

1️⃣ 使用 objdump

CentOS 默认可能未安装,先装:

sudo yum install -y binutils

反汇编整个可执行文件:

objdump -d ./test

只反汇编 main 函数:

objdump -d ./test | grep -A 50 '<main>:'

反汇编并显示源码(需 -g 编译):

objdump -S ./test

AT&T 语法(默认):

objdump -d ./test

Intel 语法(推荐):

objdump -M intel -d ./test

2️⃣ 使用 gdb(交互式)

安装:

sudo yum install -y gdb

反汇编函数:

gdb ./test
(gdb) disassemble main

Intel 语法:

(gdb) set disassembly-flavor intel
(gdb) disassemble main

反汇编当前执行位置:

(gdb) disassemble

二、反汇编正在运行的进程

1️⃣ gdb 附加进程

sudo gdb -p <pid>
(gdb) disassemble

查看某函数:

(gdb) disassemble function_name

2️⃣ 导出进程内存并反汇编

gdb -p <pid>
(gdb) dump memory code.bin 0x400000 0x401000
(gdb) quit

objdump -d -b binary -m i386:x86-64 code.bin

三、反汇编内核 / 内核模块(高级)

1️⃣ 内核函数反汇编

sudo yum install -y kernel-debuginfo
crash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux
crash> dis sys_open

2️⃣ 内核模块

objdump -d mymodule.ko

四、快速对比示例

工具 适用场景 命令示例
objdump 静态分析 objdump -M intel -d a.out
gdb 动态/调试 disassemble main
crash 内核 dis sys_call

五、常见坑

  • ❌ 看不到汇编:二进制被 strip
  • ✅ 加 -g 编译
  • ✅ 用 readelf -h 确认架构

如果你能说明:

  • 用户态程序 / 内核 / 恶意分析
  • x86 / x86_64 / ARM
  • 静态分析还是调试时抓取

我可以直接给你最合适的命令组合

0