温馨提示×

nm命令能反汇编linux吗

小樊
50
2026-09-03 09:15:53
栏目: 智能运维

简短结论:nm 不能用于反汇编 Linux(或任何二进制文件)

1. nm 是做什么的

nm(name list)的作用是显示目标文件或可执行文件中的符号表信息,例如:

  • 函数名
  • 全局变量名
  • 符号地址
  • 符号类型(代码、数据等)

示例:

nm /bin/ls

输出类似:

0000000000000000 T main
0000000000001234 T printf

只列出符号,不会生成汇编代码


2. 如果你想要“反汇编 Linux 程序”

应使用以下工具之一:

objdump(最常用)

objdump -d /bin/ls
  • -d:反汇编代码段
  • 可配合 -M intel 使用 Intel 语法

gdb(交互式反汇编)

gdb /bin/ls
(gdb) disassemble main

ndisasm(针对裸二进制)

ndisasm -b 64 file.bin

✅ 高级工具

  • radare2 / rizin
  • IDA Pro
  • Ghidra

3. 常见误解澄清

工具 是否能反汇编
nm ❌ 不能
objdump ✅ 能
readelf ❌(只能看 ELF 结构)
strings ❌(只看字符串)

4. 总结一句话

nm 是“看名字的”,不是“看代码的”;要反汇编 Linux 程序,请用 objdumpgdb

如果你有具体目标(比如反汇编内核、某个 so、或分析漏洞),可以告诉我,我可以给你更精确的命令。

0