インストール


Volatility FrameworkをMac OS X 10.8 Mountain Lionにインストールする。Homebrewの環境を前提とするが、Macportsの環境でも適宜読み替えて実行できると思う。

Python


VolatilityはPython 2.6 or 2.7で動作する。Mac OS X 10.8では、システムのPythonが2.7.2であるため、特にPythonを追加インストールする必要はない。

$ which python
/usr/bin/python
$ python --version
Python 2.7.2

依存モジュール


pipなどによってシステムにインストールする場合とHomebrewでインストールする場合ではインストールされるパスが違う。
  • システム:/Library/Python/2.7/site-packages
  • Homebrew:/usr/local/lib/python2.7/site-packages

システムはHomebrewを知らないため、システムのPythonからサイトのパッケージはインクルードされない。
$ python
Python 2.7.2 (default, Oct 11 2012, 20:14:37)
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print("\n".join(sys.path))

/Library/Python/2.7/site-packages/pip-1.3.1-py2.7.egg
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
/Library/Python/2.7/site-packages

これを解決するためには、モジュールのサーチパスであるsys.pathに含まれるようにすればいいことになるが、環境変数PYTHONPATHを設定するか.pthを作成するという方法がある。それ以外の方法としては、環境変数PYTHONHOMEを変更するとsys.prefixが変更されるためsys.pathにも影響する。また、site.pyを変更することによってもsys.pathを変更することは可能だが、これらの方法は影響が大きく、柔軟性が低いため通常はふさわしくない。

プラグインが依存するモジュールをインストールする。該当するプラグインを使用しないのであれば、インストールする必要はない。
  • Distorm3 - Powerful Disassembler Library For x86/AMD64
    • 依存するプラグイン
      • apihooks
      • callbacks
      • impscan
      • the disassemble command in volshell, linux_volshell, and mac_volshell
  • Yara - A malware identification and classification tool
    • 依存するプラグイン
      • yarascan, linux_yarascan, mac_yarascan
  • PyCrypto - The Python Cryptography Toolkit
    • 依存するプラグイン
      • lsadump
      • hashdump
      • Note: this requires python-dev to build (unless you get pre-built binaries)
  • PIL - Python Imaging Library
    • 依存するプラグイン
      • screenshots
  • OpenPyxl - Python library to read/write Excel 2007 xlsx/xlsm files
    • 依存するプラグイン
      • timeliner (with --output=xlsx option)
yara

yara本体とyaraライブラリのPython用ラッパをインストールする。pipy yara
$ brew install yara

$ brew info yara
yara: stable 1.7
http://code.google.com/p/yara-project/
/usr/local/Cellar/yara/1.7 (11 files, 292K) *
  Built from source
https://github.com/mxcl/homebrew/commits/master/Library/Formula/yara.rb
==> Dependencies
Required: pcre
PyCrypto

XCodeを事前にインストールしておく。公式サイトから最新のpycrypto-2.6.tar.gzをダウンロード・展開する。同梱されているsetup.pyでインストールする。
python setup.py build
python setup.py install
PIL

Homebrewでlittlecms/jpeg/freetypeをインストールする。
$ brew install littlecms
$ brew install jpeg
$ brew install freetype

pipでPILをインストールする。
$ sudo pip install pil -v

    --------------------------------------------------------------------
    PIL 1.1.7 SETUP SUMMARY
    --------------------------------------------------------------------
    version       1.1.7
    platform      darwin 2.7.2 (default, Oct 11 2012, 20:14:37)
                  [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)]
    --------------------------------------------------------------------
    --- TKINTER support available
    --- JPEG support available
    --- ZLIB (PNG/ZIP) support available
    --- FREETYPE2 support available
    --- LITTLECMS support available
    --------------------------------------------------------------------

Volatility


Macでは2通りのインストール・実行の仕方がある。

  1. setup.pyを実行してシステムにインストールする
  2. アーカイブを展開した任意のディレクトリで実行する

Volatilityはアーカイブを展開すればすぐに利用可能になるが、Volatilityをライブラリとして別のスクリプトから利用したい場合はsetup.pyを実行してシステムにインストールを行う必要がある。インストールすることによってスクリプトからvolatilityネームスペースが利用可能となるが、アップデートやアンインストールは困難になる。Volatilityは新しいバージョンが古いバージョンのすべての機能を備えているわけではない。これは主にWindows2000といった古いOSがサポート対象ではなくなるからである。そのため、通常は特定のバージョンをシステムにインストールせずに複数のバージョンを適宜使い分けて利用する方が使いやすいだろう。

メンバーのみ編集できます