温馨提示×

如何查看centos反汇编代码

小樊
35
2026-09-30 07:32:22
栏目: 智能运维

在 CentOS 上查看“反汇编代码”通常有几种常见场景,下面按使用目的给你一个完整指南。


一、查看可执行文件 / 程序的汇编代码

1️⃣ 使用 objdump(最常用)

适用于 ELF 可执行文件、.o 文件、库文件。

objdump -d ./your_program

常用参数:

objdump -d -M intel ./your_program   # Intel 语法(推荐)
objdump -S ./your_program            # 源码 + 汇编(需带 -g 编译)

示例:

gcc -g test.c -o test
objdump -S -M intel test

2️⃣ 使用 gdb(运行时反汇编)

适合调试、动态分析。

gdb ./your_program

在 gdb 中:

disassemble main
disassemble /m main   # 带源码

切换为 Intel 语法:

set disassembly-flavor intel

二、查看系统库 / 内核模块反汇编

查看 .so 文件

objdump -d -M intel /lib64/libc.so.6 | less

查看内核模块

objdump -d -M intel your_module.ko

三、查看正在运行的进程反汇编

gdb -p <pid>
(gdb) disassemble

或只反汇编某函数:

(gdb) disassemble function_name

四、查看内核代码反汇编(高级)

1️⃣ 查看内核函数

cat /proc/kallsyms | grep sys_open

2️⃣ 使用 crash 工具(需 debug kernel)

crash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux
crash> dis sys_open

五、查看 C 代码生成的汇编(编译阶段)

gcc -S test.c      # 生成 test.s
cat test.s

或:

gcc -S -masm=intel test.c

六、常用工具安装(CentOS)

yum install binutils gdb

七、总结对照表

场景 工具
静态分析 ELF objdump
调试 / 运行时 gdb
编译阶段 gcc -S
内核 crash + kallsyms
线上进程 gdb -p

如果你能说明:

  • 是 用户态程序 / 内核 / 库
  • 是否 带源码
  • 目的是 学习 / 调试 / 安全分析

我可以给你更精确的命令示例。

0 踩