温馨提示×

centos反汇编指令谁用过

小樊
37
2026-10-17 19:41:40
栏目: 智能运维

在 CentOS(以及大多数 Linux 发行版)里,“反汇编指令”一般指的是把二进制文件(可执行文件、库、内存等)反汇编成汇编代码。下面按常用工具和场景给你梳理一下,都是实际在 CentOS 上用过的:


一、最常用:objdump(必装)

CentOS 一般自带(binutils 包)

objdump -d ./a.out          # 反汇编所有可执行代码段
objdump -d -M intel ./a.out # Intel 语法(默认是 AT&T)
objdump -S ./a.out          # 源码+汇编(需编译时带 -g)
objdump -s -j .text ./a.out # 查看某段原始数据

常见用途:

  • 看函数汇编
  • 分析 crash / core
  • 确认编译器优化结果

二、GDB 里反汇编(调试时最常用)

gdb ./a.out
(gdb) disassemble main
(gdb) disassemble /m main     # 混合源码
(gdb) set disassembly-flavor intel
(gdb) x/10i $pc               # 看当前执行位置

适合:

  • 运行时反汇编
  • 看函数调用、栈、寄存器

三、readelf(看结构,不反汇编但常配合用)

readelf -h ./a.out
readelf -S ./a.out
readelf -s ./a.out

用来确认:

  • ELF 结构
  • 符号表
  • 段信息

四、进阶:ndisasm(裸二进制)

yum install nasm
ndisasm -b 64 shellcode.bin

适合:

  • 分析 shellcode
  • boot / 裸机代码

五、专业逆向:radare2 / ghidra(CentOS 可用)

yum install radare2
r2 ./a.out
[0x000000]> aaa
[0x000000]> pdf @ main

GHIDRA 是 GUI(Java),适合复杂逆向。


六、内核 / 模块反汇编

objdump -d vmlinux
objdump -d mydriver.ko

常用于:

  • 内核 crash 分析
  • 驱动调试

七、常见坑(CentOS 特有)

  1. 默认 AT&T 语法,很多人不习惯 → 加 -M intel
  2. 没装 binutils:
    yum install binutils
    
  3. stripped 文件也能反汇编,只是没符号

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

  • 你是 分析程序 / 病毒 / 内核 / shellcode 哪一类
  • 用的是 x86 / x64 / arm

我可以直接给你对应的反汇编命令模板。

0 踩