Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
dwarf2json — 将ELF/DWARF符号和类型信息转换为vol3的中间JSON格式 | Kitploit
工具/GitHubGitHub/volatilityfoundation/dwarf2json
内存取证逆向工程数字取证实用工具与框架二进制分析
GitHubvolatilityfoundation/dwarf2json

dwarf2json

将ELF/DWARF符号和类型信息转换为vol3的中间JSON格式

查看仓库
157371年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

简介

dwarf2json 是一个 Go 工具,用于处理包含符号和类型信息的文件,以生成适用于 Linux 和 macOS 分析的 Volatility3 中间符号文件 (ISF) JSON 输出。

build

构建(需 Go 1.18 或更高版本):

root@kitploit:~
  $ go build

运行:

root@kitploit:~
  $ ./dwarf2json --help
  Usage: ./dwarf2json COMMAND

  A tool for generating intermediate symbol file (ISF)

  Commands:
    linux  generate ISF for Linux analysis
    mac    generate ISF for macOS analysis

  Options:
  -h, --help     Show this screen.
  -v, --version  Show tool and output schema version.

注意:处理大型 DWARF 文件至少需要 8GB 内存。

Linux 处理

dwarf2json 支持处理来自 ELF 文件的 DWARF 和符号表信息,以及来自 System.map 输入文件的符号,以生成用于 Linux 分析的 ISF。

用户可以为每个输入文件选择是包含符号、类型,还是两者都包含。

root@kitploit:~
  $ ./dwarf2json linux --help
  Usage: dwarf2json linux [OPTIONS]

        --elf PATH           ELF file PATH to extract symbol and type information
        --elf-symbols PATH   ELF file PATH to extract only symbol information
        --elf-types PATH     ELF file PATH to extract only type information
        --system-map PATH    System.Map file PATH to extract symbol information

例如,要为给定的 Linux 内核 DWARF 文件包含符号和类型,可以使用:

root@kitploit:~
  $ ./dwarf2json linux --elf /usr/lib/debug/boot/vmlinux-4.4.0-137-generic > output.json

从符号表信息中提取的符号偏移优先于从 DWARF 信息中提取的符号偏移。因此,使用 --elf-symbols 标志指定的文件中所提取的符号,优先于使用 --elf 标志指定的文件中所提取的符号。使用 --system-map 标志指定的 System.Map 中的符号偏移具有最高优先级。如果不同的符号信息源之间存在冲突,将采用 System.Map 中的偏移。

允许为某个标志提供多个输入文件。例如,./dwarf2json --elf file1 --elf file2 ... 将同时处理 file1 和 file2。当遇到冲突的符号或类型信息时,命令行调用中最后指定的文件中的数据将优先。

MacOS 处理

dwarf2json 支持处理来自 Mach-O 文件的 DWARF 和符号表信息,以生成用于 macOS 分析的 ISF。

用户可以为每个输入文件选择是包含符号、类型,还是两者都包含。

root@kitploit:~
  $ ./dwarf2json mac --help
  Usage: dwarf2json mac [OPTIONS]

        --arch NAME            architecture for universal FAT files. NAME is one of {i386|x86_64}
        --macho PATH           Mach-O file PATH to extract symbol and type information
        --macho-symbols PATH   Mach-O file PATH to extract only symbol information
        --macho-types PATH     Mach-O file PATH to extract only type information

例如,要为给定的 macOS 内核 DWARF 文件包含符号和类型,并从 macOS 内核获取符号,可以使用:

root@kitploit:~
  $ ./dwarf2json mac --macho /path/kernel.dSYM/Contents/Resources/DWARF/kernel \
    --macho-symbols /path/kernel > output.json

从符号表信息中提取的符号偏移优先于从 DWARF 信息中提取的符号偏移。因此,使用 --macho-symbols 标志指定的文件中所提取的符号,优先于使用 --macho 标志指定的文件中所提取的符号。

允许为某个标志提供多个输入文件。例如,./dwarf2json --macho file1 --macho file2 ... 将同时处理 file1 和 file2。当遇到冲突的符号或类型信息时,命令行调用中最后指定的文件中的数据将优先。

在处理 Mach-O 通用 FAT 二进制文件时,需要使用 --arch 标志为其中一个嵌入的 Mach-O 文件选择架构。

例如,为 OS X 10.7 内核调试套件的 i386 架构生成 ISF JSON 文件,可以使用:

root@kitploit:~
  $ ./dwarf2json mac --arch i386 \
  --macho mach_kernel.dSYM/Contents/Resources/DWARF/mach_kernel \
  --macho-symbols mach_kernel > mach_kernel.json
下载工具