温馨提示×

centos反汇编指令怎调试

小樊
38
2026-09-06 07:25:40
栏目: 智能运维

CentOS 下进行“反汇编 + 调试”通常涉及 objdump / gdb / radare2 / ltrace / strace 等工具。下面按常见使用场景给你一个实用指南。


一、准备工作(安装工具)

sudo yum install -y gdb binutils
# 反汇编增强
sudo yum install -y radare2
# 系统调用/库调用跟踪
sudo yum install -y strace ltrace

如果是 CentOS 8+

sudo dnf install -y gdb binutils radare2 strace ltrace

二、用 objdump 反汇编

1️⃣ 反汇编整个可执行文件

objdump -d ./a.out

2️⃣ 反汇编某个函数

objdump -d -M intel ./a.out | grep -A 30 "<main>:"

-M intel:使用 Intel 语法(比 AT&T 好读)

3️⃣ 查看符号表

objdump -t ./a.out

三、用 gdb 调试 + 看汇编

1️⃣ 启动 gdb

gdb ./a.out

2️⃣ 在 main 下断点

break main
run

3️⃣ 查看汇编

disassemble

或指定函数:

disassemble main

4️⃣ Intel 语法(推荐)

set disassembly-flavor intel

5️⃣ 单步执行(汇编级)

stepi
nexti

6️⃣ 查看寄存器

info registers

7️⃣ 查看内存

x/10x $rsp
x/10i $rip

四、源码 + 汇编混合调试(强烈推荐)

编译时加调试信息:

gcc -g -O0 test.c -o test

gdb 中:

layout split

上方源码,下方汇编

或:

layout asm

五、动态调试技巧

1️⃣ 跟踪系统调用

strace ./a.out

2️⃣ 跟踪库函数

ltrace ./a.out

3️⃣ 附加到进程

gdb -p <pid>

六、Radare2(逆向更专业)

1️⃣ 打开程序

r2 -d ./a.out

2️⃣ 分析

aa

3️⃣ 反汇编 main

pdf @ main

4️⃣ 调试

dc      # 运行
s main  # 跳到 main
pdf     # 反汇编

七、常见坑(CentOS 特有)

没有调试符号

yum install -y glibc-debuginfo

SELinux 阻止 gdb

setenforce 0

PIE 程序

gcc -no-pie -fno-pie test.c -o test

八、典型调试流程(推荐)

gcc -g -O0 -no-pie test.c -o test
gdb ./test
(gdb) set disassembly-flavor intel
(gdb) break main
(gdb) run
(gdb) layout split
(gdb) stepi

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

  • C / C++ / 汇编 / 病毒分析 / CTF
  • 调试崩溃 / 逆向 / 漏洞利用

我可以给你更针对性的命令示例。

0