検索
連載

シェルコード解析に必携の「5つ道具」リバースエンジニアリング入門(3)(1/3 ページ)

コンピュータウイルスの解析などに欠かせないリバースエンジニアリング技術ですが、何だか難しそうだな、という印象を抱いている人も多いのではないでしょうか。この連載では、「シェルコード」を例に、実践形式でその基礎を紹介していきます。(編集部)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

シェルコードの調理に必要なツール

 第1回第2回では、シェルコードの入手方法、概要について解説してきました。料理に例えるならば、素材を手に入れ、その素材がどういうものかを学んだ、というところでしょうか。

 今回は、素材であるシェルコードを調理するのに必要なツールを紹介します。ここで紹介するツールは、シェルコード解析だけではなく、マルウェア解析でも使えるので、シェルコード解析を卒業し、マルウェア解析に挑む際にも参考にしていただければと思います。

 図1はシェルコード解析の流れとそのときに使われるツールの例です。今回は、逆アセンブラである「IDA Pro(アイダ プロ)」、デバッガである「OllyDbg(オリーデバッガ)」「Immunity Debugger(イミュニティー デバッガ)」、シェルコードを実行ファイルに変換する「shellcode2exe.py(シェルコード トゥー エグゼ ドット パイ)」、シェルコードの実行をエミュレートする「libemu(リブエミュ)」を紹介します。

図1 今回紹介するツールと解析の流れ
図1 今回紹介するツールと解析の流れ
ツールの名称 URL
IDA Pro http://www.hex-rays.com/idapro/
OllyDbg http://www.ollydbg.de/
Immunity Debugger https://www.immunityinc.com/products-immdbg.shtml
shellcode2exe.py http://zeltser.com/reverse-malware/convert-shellcode.html
libemu http://libemu.carnivore.it/

リバースエンジニアリングのスタンダード「IDA Pro」

 リバースエンジニアリングには、逆アセンブラである「IDA Pro」がよく用いられます。IDA Proは逆アセンブラのデファクトスタンダートといっても過言ではありません。正規版はHex-Rays社から販売されていますが、非商用の利用に限っては、旧バージョン(Ver.5.0)を無償版として利用することができます。

 最新版(Ver.6.1)と比べ、無償版では対応しているファイルフォーマットやCPUアーキテクチャが少なかったり、組み込まれているプラグインやデバッガの数が少なかったりと、いくつか機能的に劣っている部分があります。とはいえ、シェルコード解析やマルウェア解析をこれから始めてみよう、という方であれば問題ないかと思います。解析をバリバリ行えるようになり、無償版では物足りないと思ったときに最新版の購入を検討するとよいでしょう。

 IDA Pro無償版のインストールは非常に簡単で、Hex-Rays社のサイトからダウンロードしたインストーラを起動するだけです。

 では、第1回で取得していた「download_exec.bin」をIDA Proに読み込ませてみましょう。IDA Proを立ち上げ、起動方法を選択する画面(図2)が出現したら、「New」をクリックします。

図2 IDA Proの起動方法選択画面
図2 IDA Proの起動方法選択画面

 なお、新しくバイナリを読み込ませて解析を始めるなら「New」、バイナリを読み込ませずに起動するなら「Go」、以前解析したことのあるバイナリの解析を行う場合は、画面下の履歴から解析したいバイナリ名を選んで「Previous」をクリックします。「Go」を選択した後、IDA Proのウィンドウにバイナリをドラッグアンドドロップして読み込ませることも可能です。

 「New」をクリックすると、読み込むバイナリのフォーマットを選択する画面が出てきます(図3)。

図3 IDA Proで読み込むバイナリの種類を選択する画面
図3 IDA Proで読み込むバイナリの種類を選択する画面

 今回は「Various files」タブの「Binary/Raw File」を選択して、download_exec.binを読み込ませます。この後、バイナリをロードするウィザードが立ち上がりますが、とりあえず「次へ」で先に進んでかまいません。プロセッサの選択では「Intel 80x86 processors: metapc」を選択しておきます。ウィザードが終わった後、16bit/32bitのどちらで逆アセンブルするかを選択する画面が出ますが、ここは32bitで逆アセンブルしましょう。

 これでIDA Proにシェルコードを読み込ませることができました。

 図4はシェルコードを読み込ませた直後の画面です。画面中央の「IDA View」のウィンドウに逆アセンブルしたコードが表示されていま……せんね。これは、シェルコードをバイナリとして読み込んだだけで、どのバイト値をコードと解釈するかが設定されていないためです。

 download_exec.binのエントリである「seg000:00000000」のところにカーソルを合わせて、キーボードの「c」を押してみましょう。「c」は、カーソルの位置をコードとして解釈し逆アセンブルする、というショートカットキーです。そうすると図5のように、逆アセンブルされたコードが画面に表示されます(注1)。

図4:IDA Proでシェルコードを読み込んだ直後の画面(クリックすると拡大します)
図4:IDA Proでシェルコードを読み込んだ直後の画面(クリックすると拡大します)
図5:IDA Proで逆アセンブルした後の画面(クリックすると拡大します)
図5:IDA Proで逆アセンブルした後の画面(クリックすると拡大します)
注1:デフォルトのままだと、IDA Proのウィンドウ上部にたくさんのアイコンが並んでおり、逆アセンブリを表示するウィンドウが狭くなっています。筆者は、逆アセンブリを表示するウィンドウを大きくするために、これらのアイコンを非表示にしています。非表示にする場合は、上部のメニューを「View」→「Toolbars」でたどり、「Main」のチェックを外してください。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ

Security & Trust 記事ランキング

  1. 増える標的型ランサムウェア被害、現場支援から見えてきた実態と、脆弱性対応が「限界」の理由
  2. 日本人の約半数が「1年前より危険」と考えるオンライン詐欺とは マカフィーがホリデーショッピング詐欺に関して調査
  3. Google Cloudがサイバーフィジカルシステムのレジリエンスを高める10の指標を解説 最初にすべきことは?
  4. ランサムウェア攻撃を受けた企業、約6割が「サプライチェーンのパートナー経由で影響を受けた」 OpenText調査
  5. セキュリティ担当者の54%が「脅威検知ツールのせいで仕事が増える」と回答、懸念の正体とは? Vectra AI調査
  6. 「このままゼロトラストへ進んでいいの?」と迷う企業やこれから入門する企業も必見、ゼロトラストの本質、始め方/進め方が分かる無料の電子書籍
  7. 米国/英国政府が勧告する25の脆弱性、活発に悪用されている9件のCVEとは、その対処法は? GreyNoise Intelligence調査
  8. 長続きする高度セキュリティ人材育成の秘訣を「第19回情報危機管理コンテスト」から探る
  9. セキュリティ専門家も「何かがおかしいけれど、攻撃とは言い切れない」と判断に迷う現象が急増 EGセキュアソリューションズ
  10. MicrosoftがAD認証情報を盗むサイバー攻撃「Kerberoasting」を警告 検知/防御方法は?
ページトップに戻る