linux

Linux反汇编指令:如何使用nm工具

小樊
44
2025-06-26 20:31:29
栏目: 智能运维

nm 是一个用于显示二进制文件(如可执行文件、目标代码文件和库文件)中的符号信息的命令行工具。在 Linux 系统中,它常用于反汇编和调试目的。以下是如何使用 nm 工具的一些基本指南:

基本用法

  1. 查看符号表

    nm <filename>
    

    这将显示文件中的所有符号及其地址。

  2. 过滤特定符号: 使用 -A 选项可以只显示未定义的符号:

    nm -A <filename>
    
  3. 显示详细信息: 使用 -C--demangle 选项可以将 C++ 符号名解码为人类可读的形式:

    nm -C <filename>
    
  4. 显示动态符号表: 使用 -D 选项可以只显示动态符号表中的符号:

    nm -D <filename>
    
  5. 显示符号类型: 使用 -t 选项可以指定输出格式。例如,-t x 显示十六进制地址,-t d 显示十进制地址:

    nm -t x <filename>
    
  6. 显示符号大小: 使用 -s 选项可以显示符号的大小:

    nm -s <filename>
    

示例

假设我们有一个名为 example.o 的目标文件,我们可以使用以下命令来查看其符号信息:

nm example.o

输出可能类似于:

0000000000000000 T main
0000000000000010 D global_var
0000000000000020 U printf

高级用法

  1. 结合其他工具nm 可以与其他工具结合使用,例如 objdumpreadelf,以获取更详细的反汇编信息。

  2. 查看特定段的符号: 使用 -n 选项可以指定要显示的段:

    nm -n .text example.o
    
  3. 显示符号的地址范围: 使用 -r 选项可以显示符号的地址范围:

    nm -r example.o
    

通过这些基本和高级用法,你可以有效地使用 nm 工具来分析和调试你的 Linux 系统中的二进制文件。

0
看了该问题的人还看了