wivern ロゴ

サイバーセキュリティ研究所

サイバーセキュリティを中心に、軍事、防犯、サーバーの管理と監視、その他、最新技術を研究しています。


TrID 日本語解説

ファイル識別ツール

iptables

はじめに
サーバーや PC の管理は言うに及ばず、CTF でも問題のファイルが何なのかを調べたい場合があります。 その場合に、よく用いられるのが Linux の file コマンドですが、今回紹介するのは file コマンドよりも汎用性の高いツール「TrID」です。
たのしいバイナリの歩き方」で少しだけ紹介されている(p.260)のを読んで、詳しく調べてみたのでレポートします。


TrID - File Identifier
http://mark0.net/soft-trid-e.html

代表的な CUI 版として、Win32 版と Linux/x86 版がある他に、GUI 版( Windows版 )の TrIDNet と、オンラインで利用できる Online TrID があります。
個人であれば無料で利用できますが、商用利用はできません。

以下の内容は、CUI 版について作者のサイトに記載されている内容を翻訳したものです。

TrID とは
TrID は、ファイルのバイナリ・シグネチャからファイル形式を識別するように設計されたユーティリティです。
似たようなユーティリティで、ルールをハード・コーディングしたものがありますが、TriID はそんなルールを備えていません。
その代わり、拡張可能で、素早く自動で新しいフォーマットを認識するように学習させることができます。

TriID にはたくさんの用途があります:メールを介してあなたに送られたファイルの種類を識別したり、フォレンジックの解析を手助けしたり、ファイルの復旧をサポートしたり、等々。

TriID は、サポートするファイル形式で繰り返されるパターンを記述した定義データベースを使用します。
(ファイル形式を識別するための定義データベースは)とても頻繁に更新する必要があるので、別パッケージとして利用可能になっています。
TrID とこの(ファイル形式を識別するための定義データベースの)アーカイブをダウンロードして同じフォルダに解凍してください。

定義データベースは常に拡張していて、有用になればなるほど、不明なファイルの正確な解析が可能になります。
あなたも協力できます!不明なファイル形式を認識して、ライブラリに追加できる新しい定義を開発するためにプログラムを使ってください。
協力方法については、TrIDScan のページをご覧ください。
TrIDScan モジュールを与えられたいくつかのファイルに対して実行するだけです。
あとはプログラムがやってくれます。

TrID は拡張可能なデータベースを使っているので、決して古くなることはありません。
新しいファイル形式が利用可能になると、それに対してスキャンモジュールを実行することができ、プログラムを最新に保つことができます。
世界中の人達がデータベースを動的で生きた物にするために同じことをしているでしょう。
もしあなただけが使える特別なファイルフォーマットをお持ちなら、それをあなたのローカルデータベースに追加することもできるので、より簡単に識別できるようになります。

使い方
はじめに、現在の定義ライブラリには 5384 にも及ぶファイル形式があり、急成長しています。
TrID を使うのは簡単です。
TrID を実行して、解析したいファイルを指定するだけです。
ファイルは読み込まれて、データベースの定義と比較されます。
結果は確率の高い順に表示されます。





ひとかたまりのファイルやフォルダ全体等をスキャンするのにワイルドカードを使うことができます。
それに加えて、-ae スイッチを使うと、TrID に対して、ファイル名に推定される拡張子をつけ加えるように指示します。
例えば、データ救済ソフトウェアで復旧されたファイルを扱うときに役に立ちます。
例を示します:


この時点で、c:\temp フォルダの中のファイルはこんな感じになっています:

 FILE0001.CHK.bav
 FILE0002.CHK.ogg
 FILE0003.CHK.doc
 FILE0004.CHK.exe

代わりに、-ce スイッチを使うと、ファイルの拡張子を新しいものに変更します。
もし、ファイルに拡張子がない場合に、新しい拡張子がつけ加えられます。例えば:

 IAmASoundFile.dat -> IAmASoundFile.wav
 IAmABitmap -> IAmABitmap.bmp

TrID に、マッチしたものそれぞれについてもっといくつかの情報(定義の作成者、スキャンされたファイル数、等々)を表示させることができます。
また、表示される結果の数を制限することもできます。
-v スイッチを使うと詳細モードになり、-r:nn で TrID が表示するマッチング数の最大値を指定します。
デフォルトでは、通常モードで5、詳細モードで2、複数のファイル解析では1になっています。



始まると、TrID は TrIDDef を調べます。
TRD 定義パッケージは、カレントディレクトリに配置します。
見つからない場合は、TrID がインストールされているフォルダを探します。
-d:filespec スイッチで特定の定義ファイルを指定することもできます。
結果表示の後、TrID をキー入力待ちさせたい場合には、-wスイッチがあります。
最近更新された定義情報を得る過程をスピードアップするには、TrIDUpdate という Python のスクリプトを使用可能です。
最初に、現在の TRD ファイルの MD5 の値とオンラインで有効な値を比較して、ファイルに更新がなければとても早いです。
例を示します:


記述に際しては、細心の注意をしたつもりですが、間違いやご指摘がありましたら、こちらからお知らせいただけると幸いです。


→「世界規模のサイバー攻撃を実感する5」
←「不正アクセス IP アドレスリスト」


« 戻る