简短结论:可以,但要看你具体想“反汇编”什么,以及你用的是哪种可执行文件。
下面分情况说明:
gdb 本身就能反汇编代码,不依赖操作系统是不是 CentOS。
只要满足以下条件即可:
gdb ./a.out
(gdb) disassemble main
或反汇编指定地址:
(gdb) disas 0x4005f0
✅ 完全可以
CentOS 是 Linux 发行版,gdb 是标准调试工具,官方仓库就有:
yum install gdb # CentOS 7
dnf install gdb # CentOS 8+
不能。
错误。
即使没有源码,只要有二进制:
gdb ./binary
(gdb) set disassembly-flavor intel
(gdb) disassemble main
gdb ./test
(gdb) disas main
gdb -p <pid>
(gb) disas
gdb ./a.out core
(gdb) disas
(gdb) info sharedlibrary
(gdb) disas 0x7f...
| 工具 | 用途 |
|---|---|
| objdump | 静态反汇编 |
| radare2 | 逆向分析 |
| Ghidra | 高级反编译 |
| IDA Pro | 商业逆向 |
| capstone | 反汇编引擎 |
示例:
objdump -d ./a.out
gdb 可以在 CentOS 上反汇编 ELF 可执行文件、动态库和进程,但“反汇编 CentOS”这个说法本身不准确。
如果你愿意,可以告诉我:
我可以给你更精确的用法。