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 は、シンボル情報と型情報を含むファイルを処理し、Linux および macOS 分析に適した Volatility3 中間シンボルファイル(ISF)JSON 出力を生成する Go ユーティリティです。

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 の RAM が必要です。

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 バイナリを処理する場合、埋め込まれている Mach-O ファイルのいずれかのアーキテクチャを選択するために --arch フラグを使用する必要があります。

例えば、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
ツールをダウンロード