温馨提示×

CentOS反汇编指令怎么选

小樊
37
2026-07-09 02:08:32
栏目: 智能运维

CentOS 上做反汇编,选择什么指令(工具)取决于你是 分析 ELF 可执行文件、shellcode、内核代码,还是调试运行时程序。下面给你一个实战导向的选择指南,从“最常用 → 进阶 → 特殊场景”。


一、最常用:选 objdump(首选)

✅ 适合场景

  • 查看 ELF 可执行文件 / .o 文件 / 库
  • 学习汇编 / 逆向分析
  • 查看函数、符号、代码段

安装

sudo yum install -y binutils

常用反汇编命令

objdump -d hello

推荐参数

objdump -d -M intel hello        # Intel 语法(比 AT&T 友好)
objdump -d -M intel --no-show-raw-insn hello
objdump -S hello                # 源码 + 汇编(有调试信息)

常见用法

objdump -d -M intel ./a.out | less

二、调试场景:选 gdb(动态反汇编)

✅ 适合场景

  • 调试程序
  • 运行时反汇编函数
  • 查看寄存器、内存

安装

sudo yum install -y gdb

常用反汇编命令

gdb ./a.out
(gdb) disassemble main
(gdb) disassemble 0x4005f6

Intel 语法

set disassembly-flavor intel

单步 + 看汇编

layout asm
layout reg

逆向 / 漏洞分析必会


三、快速查看机器码:选 ndisasm

✅ 适合场景

  • 分析 shellcode
  • 裸二进制文件(无 ELF 头)
  • 教学 / CTF

安装

sudo yum install -y nasm

使用示例

ndisasm -b 64 shellcode.bin
参数 说明
-b 32 32 位
-b 64 64 位

四、进阶逆向:选 radare2(r2)

✅ 适合场景

  • 专业逆向
  • 无符号分析
  • CTF / 恶意样本

安装

sudo yum install -y radare2

基本用法

r2 ./a.out
[0x00000000]> aaa
[0x00000000]> pdf @ main

特点

  • 支持多种架构
  • 静态 + 动态分析
  • 学习曲线略陡

五、内核 / 模块:选 objdump + addr2line

查看内核函数

objdump -d vmlinux

地址转源码

addr2line -e vmlinux 0xffffffff81000000

六、工具选择速查表 ✅

场景 推荐指令
分析 ELF 程序 objdump -d -M intel
调试 + 反汇编 gdb
shellcode / 裸二进制 ndisasm
专业逆向 radare2
内核分析 objdump + addr2line

七、语法选择(非常重要)

Intel vs AT&T

objdump -d -M intel        # ✅ 推荐
objdump -d                 # AT&T(默认)

逆向 / 安全 / 学习强烈建议 Intel 语法


八、推荐学习组合(实战)

gcc -g -no-pie -fno-stack-protector test.c -o test
objdump -d -M intel test
gdb ./test

如果你愿意,可以告诉我:

  • ✅ 是 用户态程序 / 内核 / shellcode
  • ✅ 想学 逆向 / 漏洞 / 性能分析
  • ✅ CentOS 7 还是 CentOS 8/Stream

我可以直接给你一套 针对你场景的完整反汇编流程

0