概要
Resource HackerはWindows実行形式ファイルのリソースセクションに含まれるデータを表示、編集、抽出することができるフリーのソフトウェアです。
Windows実行形式ファイルはPEファイルフォーマットで構成されています。PEファイルフォーマットの一例を下図に示します。PEファイルフォーマットは各種のヘッダーとセクションから構成されています。これらのうち、Resource Hackerが対象とするリソースセクション(一般的には.rsrcで表される領域)には、ファイルアイコンやダイアログ画面などのデータが含まれています。
下図はWindows標準の電卓プログラムをResource Hackerで読み込んだ様子を示しています。この図から、電卓プログラムのリソースセクションは「Icon」、「Icon Group」、「Version Info」、「Manifest」の4つのリソースから構成されており、「Icon」リソース内に4つの画像が含まれていることがわかります。
Resource Hackerを利用することで、海外製プログラムのGUIを日本語化したり、自作プログラムに任意のアイコン画像を設定したりすることができます。
マルウェア解析における利用方法
マルウェアの中には、リソースセクションに実行形式ファイルやシェルコードなどを隠ぺいしている検体が存在します。今回はResource Hackerを使ってそのようなバイナリを抽出する方法について紹介します。
- 検体の読み込み
- リソースセクションの情報を解析
- データの抽出
詳細な手順
1.検体の読み込み
解析対象の検体をResource Hackerにドラッグ&ドロップして読み込ませます。
2.リソースセクションの情報を解析
検体の読み込みが完了すると、リソースセクションの構造を自動で解析し、内容を表示します。今回の検体は「XIA」、「Version Info」、「Manifest」の3つのリソースで構成されていることがわかります。また「XIA」リソースを詳しく見てみると、この領域に16進数表記で「50 4B」(ASCII表記で「PK」)から始まるデータが格納されていることが確認できます。これはZIP形式ファイルの特徴です。
3.データの抽出
Resource Hackerは特定リソースのデータを抽出することが可能です。対象のデータを選択して右クリックし、「Save」から始まる項目を選択することで任意のデータ形式で抽出することができます。
実際に「XIA」リソースに格納されたデータを抽出してバイナリを解析すると、複数のファイルが格納されていることが確認できます。これらのファイルはマルウェアを実行した際に展開および利用されるコンポーネントであると推測できます。