Cisco Japan Blog

Windows ドライバ関数のための Ghidra データ型アーカイブ

1 min read



 

Ghidra を使用した Windows ドライバのリバースエンジニアリングでは、逆アセンブル中に、認識されない関数やデータ型に出くわすことがよくあります。

その理由は、Ghidra には Windows ドライバで使用されるデータ型と関数の定義の多くがネイティブに含まれていないからです。

幸いなことに、これらの問題は通常、関連する定義を含む Ghidra データ型アーカイブファイル(.gdt)をインポートすると解決できます。

しかし、対象とする定義が既存の .gdt ファイルで利用できないことは珍しくありません。つまり、新しく定義を手作業で作成する必要があります。加えて、関数やデータ型が Microsoft 社によって文書化されていないケースもあるため、定義を新たに作成する作業が面倒なものになりがちです。

Windows ドライバのリバースエンジニアリングにおいてアナリストを支援する目的で、Cisco Talos は GitHub で GDT ファイルを公開しています。このファイルには、悪意のあるドライバを分析する中で Talos が必要に応じて作成した関数とデータ型のさまざまな定義(一般的に使用されるデータ型アーカイブにはなかったもの)が含まれています。

なお、重要な点ですが、このアーカイブは文書化されていないすべての Windows 関数を網羅することを意図したものではありません。また、他の利用可能なデータ型アーカイブの代わりになるものではなく、補完するものです。これは長期的プロジェクトですので、Talos のアナリストが新たに定義を作成し、一般公開されるたびに成長していきます。

アーカイブについては、こちらpopup_iconの GitHub リポジトリでご覧いただけます。

 

本稿は 2024 年 10 月 10 日にTalos Grouppopup_icon のブログに投稿された「Ghidra data type archive for Windows driver functionspopup_icon」の抄訳です。

 

コメントを書く