Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pyrebox — Pythonでスクリプト可能なリバースエンジニアリングサンドボックス、QEMUベースの仮想マシン計装・検査フレームワーク | Kitploit
ツール/GitHubGitHub/cisco-talos/pyrebox
動的分析 (サンドボックス)メモリフォレンジックリバースエンジニアリングデバッガマルウェア分析デジタルフォレンジックバイナリ解析学習と教育Archived
GitHubcisco-talos/pyrebox

pyrebox

Pythonでスクリプト可能なリバースエンジニアリングサンドボックス、QEMUベースの仮想マシン計装・検査フレームワーク

リポジトリを見る
1.7k2542年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

================ アーカイブ済みプロジェクト

このプロジェクトはアーカイブされ、Issue キューはロックされています。このプロジェクトは参照目的でのみ公開されています。

.. image:: docs/media/pyrebox_logo_light_bg.png

.. _QEMU: http://qemu.org/ .. _DECAF: https://github.com/sycurelab/DECAF .. _S2E: https://github.com/dslab-epfl/s2e .. _AVATAR: https://github.com/avatartwo .. _PANDA: https://github.com/panda-re/panda .. _Volatility: http://www.volatilityfoundation.org/ .. _BUILD: BUILD.rst .. _here: https://github.com/Cisco-Talos/pyrebox/issues .. _slides: https://github.com/Cisco-Talos/pyrebox/tree/master/docs/pyrebox_hitb_ams.pdf .. _available: https://github.com/Cisco-Talos/pyrebox/tree/master/docs/pyrebox_euskalhack.pdf .. _scripts: https://github.com/Cisco-Talos/pyrebox/tree/master/scripts .. _readthedocs.io: https://pyrebox.readthedocs.io/en/latest/ .. _questions: https://github.com/Cisco-Talos/pyrebox/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20 .. _presentation: https://www.youtube.com/watch?v=F2voG87obzM .. _Contest: https://volatility-labs.blogspot.com/2017/11/results-from-5th-annual-2017-volatility.html

PyREBox は、Python スクリプト可能なリバースエンジニアリングサンドボックスです。これは QEMU に基づいており、動的解析とデバッグ機能を異なる視点から提供することでリバースエンジニアリングを支援することを目的としています。PyREBox を使用すると、実行中の QEMU VM を検査したり、そのメモリやレジスタを変更したり、実行をインストルメント化したり、Python の簡単なスクリプトを作成してあらゆる種類の分析を自動化することができます。QEMU(全体システムエミュレータとして動作する場合)は、完全なシステム(CPU、メモリ、デバイスなど)をエミュレートします。VMI 技術を使用することで、ゲストオペレーティングシステムを変更する必要はなく、実行時にそのメモリから透過的に情報を取得します。

DECAF_、PANDA_、S2E_、AVATAR_ などのいくつかの学術プロジェクトは、以前から QEMU ベースのインストルメンテーションを活用してリバースエンジニアリングのタスクを克服してきました。これらのプロジェクトでは C/C++ でプラグインを作成でき、動的タイント解析、シンボリック実行、実行トレースの記録と再生などの高度な機能を実装しています。PyREBox では、シンプルな設計と脅威アナリストにとっての使いやすさに重点を置いて、この技術を適用することを目指しています。

PyREBox は 2017 年の Volatility プラグインコンテスト_ で優勝しました!

このツールは HITB Amsterdam 2018 で発表されました。スライド_ をご覧いただくか、プレゼンテーション_ をご視聴ください。また、第 3 回 EuskalHack セキュリティコングレス(スライドはこちら_)でも発表されました。

新機能

PyREBox の最新機能を活用するために、最新バージョンをプルすることを忘れないでください。PyREBox は活発に開発されており、新しいクールな機能がこれからも追加される予定です!master ブランチは常に安定版を含んでいる必要がありますが、dev ブランチには最新の作業中の機能が含まれています。以下のアナウンス一覧は master ブランチを参照し、開発変更が master にマージされた日付を示します。

  • [Dec 5, 2019] PyREBox3 のベータ版が python3migration ブランチで利用可能になりました。 ツールは Python3 と Volatility3 に移植されました。プラグインはまだ移植されていません。
  • [Jun 21, 2019] QEMU をバージョン 4.0.0 にアップグレードし、MTTCG(マルチスレッド TCG)をサポートしました。 このアップグレードへの貴重な貢献に対して @richsurgenor に感謝します。
  • [Jun 17, 2019] dev ブランチ(マルウェアモニター 2)のマージ。
  • [Jun 17, 2019] マウス移動の自動化。
  • [Jun 17, 2019] Volatility のアップグレード。
  • [Oct 17, 2018] Windows ゲストからシステム時刻を取得する API 関数を追加。
  • [Oct 17, 2018] BP(ブレークポイント)クラスでのシンボルサポートを追加。
  • [Oct 17, 2018] シンボルキャッシュ(ホストファイル)を追加。設定ファイルの例(pyrebox.conf.WinXPSP3x86)を参照。
  • [Oct 17, 2018] DLL ファイルをディスクから取得するようにシンボル取得を変更。
  • [Oct 10, 2018] マッピングされていないメモリページを取得する実験的サポートを追加。
  • [0ct 10, 2018] The Sleuth Kit 統合を追加。
  • [Aug 02, 2018] 自動実行スクリプトを追加。
  • [Jul 26, 2018] EuskalHack 2018 プレゼンテーションのスライドをアップロード。
  • [Jul 02, 2018] CentOS 7 サポートを提供するための修正。
  • [Jun 25, 2018] EuskalHack 2018 で発表されたスクリプトを追加。
  • [May 31, 2018] Qemu v2.12.0 にアップグレード。
  • [May 29, 2018] Python スクリプトから(C/C++ の)トリガー関数を呼び出す機能を追加。
  • [May 29, 2018] コールバックパラメータの形式を変更しました。 ドキュメントを参照。デフォルトは依然として旧スタイルです。
  • [Apr 28, 2018] PyREBox の新機能および潜在的に不安定な機能のための開発ブランチを作成。
  • [Apr 13, 2018] HITB Amsterdam(CommSec トラック)で PyREBox を発表。
  • [Apr 13, 2018] マルウェア監視スクリプト(mw_mon)を追加。
  • [Mar 08, 2018] トリガーがシステム内のすべてのプロセスに対して呼び出されるようになりました(監視対象プロセスだけでなく)。ドキュメントを参照。
  • [Mar 08, 2018] メモリ読み取り/書き込みコールバックパラメータを変更しました。ドキュメントと例を参照。
  • [Mar 08, 2018] 物理メモリアドレスの読み取り/書き込みブレークポイントを追加。
  • [Mar 08, 2018] モジュールロードおよび削除コールバックを追加。
  • [Nov 02, 2017] Linux 32 ビットおよび 64 ビット用のゲストエージェントを追加。
  • [Oct 23, 2017] Windows 32 ビットおよび 64 ビット用のゲストエージェントを追加。
  • [Oct 11, 2017] Linux モジュールシンボル解析を追加。
  • [Sep 22, 2017] モジュールのリロードサポートを追加。
  • [Sep 20, 2017] BP クラスにカスタム関数コールバックを追加。
  • [Sep 20, 2017] Qemu v2.10.0 にアップグレード。
  • [Aug 31, 2017] Linux ゲストの部分サポート。

インストール

ビルドスクリプトが提供されています。依存関係の詳細については、BUILD_ を参照してください。Dockerfile も提供しています。

ドキュメント

このプロジェクトのドキュメントは readthedocs.io_ でホストされています。

バグ、質問、サポート

バグを発見したと思われる場合は、こちら_ に報告してください。

新しい Issue を作成する前に、他のユーザーが開いた質問_ を確認してください。

このプログラムは「現状のまま」提供され、サポートは保証されません。ただし、問題の解決を支援するために、バグを再現するためのできるだけ多くの情報を含めてください。

  • PyREBox のコンパイルと実行に使用したオペレーティングシステム。
  • 使用している特定のオペレーティングシステムのバージョンとエミュレーションターゲット。
  • 実行しようとしたシェルコマンド/スクリプト/タスク。
  • エラーメッセージ、Python(または IPython)のスタックトレース、QEMU のスタックトレースなど、エラーに関する情報。
  • その他関連情報。

ロードマップ

  • VM イメージの設定と管理コンソール。
  • ARM、MIPS、その他のアーキテクチャのサポート。
  • GNU/Linux ゲストシステムのサポート完了(Issue を参照)。

VM の起動

PyREBox は QEMU に基づいているため、PyREBox 内で VM を起動するには、QEMU VM を起動するときとまったく同じように実行する必要があります。例として、start_i386.sh、start_x86_64.sh という 2 つのサンプルスクリプトが提供されています。これらを参考にしてください。

現在サポートされている QEMU モニタオプションは stdio(-monitor stdio)のみです。

このプロジェクトの目標

  • エミュレートされたゲストシステムを検査するためのシンプルなインターフェースを備えた全体システムエミュレーションプラットフォームを提供する。

    • システムイベントのきめ細かいインストルメンテーション。
    • Volatility に基づく統合仮想マシンイントロスペクション(VMI)。ゲストにエージェントやドライバをインストールする必要はありません。
    • IPython ベースのシェルインターフェース。
    • Python ベースのスクリプティングエンジン。これにより、この言語に基づくセキュリティツール(最大のエコシステムの 1 つ)をスクリプトに統合できます。
  • QEMU から切り離されたクリーンな設計を持つこと。QEMU 上に構築された多くのプロジェクトは、QEMU がアップグレードされても進化せず、新機能や最適化、セキュリティアップデートを見逃しています。これを達成するために、PyREBox は独立したモジュールとして実装されており、QEMU と一緒にコンパイルでき、最小限の変更で済みます。

  • 異なるアーキテクチャのサポート。現在、PyREBox は x86 および x86-64 ビットアーキテクチャの Windows のみをサポートしていますが、その設計により ARM、MIPS、PowerPC などの他のアーキテクチャや他のオペレーティングシステムもサポートできます。

IPython シェル

PyREBox シェルを起動するには、QEMU のモニタで sh コマンドを入力するだけです。すぐに IPython シェルが起動します。このシェルはコマンド履歴と定義された変数を記録します。たとえば、値を保存しておき、後で別の実行ポイントでシェルを再度起動したときにその値を復元できます。PyREBox は、オートコンプリート、コマンド履歴、複数行編集、自動コマンドヘルプ生成など、IPython の利用可能なすべての機能を活用します。

PyREBox を使用すると、比較的ステルスな方法でシステム(またはプロセス)をデバッグできます。従来のデバッガはデバッグ対象のシステム内に常駐し(デバッグ対象のプロセスのメモリを変更してブレークポイントを挿入することさえあります)、PyREBox は検査対象のシステムの完全に外部にあり、ゲストへのドライバやコンポーネントのインストールは必要ありません。

.. image:: docs/media/breakpoint.gif

PyREBox は、実行中の VM の状態を検査および変更するための完全なコマンドセットを提供します。list_commands と入力すると完全なリストが表示されます。vol とそれに対応する volatility コマンドを入力するだけで、任意の volatility プラグインを実行できます。利用可能な volatility プラグインの完全なリストは、list_vol_commands と入力することで取得できます。このリストは自動的に生成されるため、PyREBox の volatility/ パスにインストールした volatility プラグインも表示されます。

独自のコマンドを定義することもできます!スクリプト内で関数を宣言し、ロードするだけの簡単な操作です。

コマンドよりも表現力豊かなものが必要な場合は、API を利用した Python スニペットを作成できます。API の詳細については、ドキュメント_ を参照するか、シェルで help(api) と入力してください。

.. image:: docs/media/stack.gif

スクリプティング

PyREBox を使用すると、スクリプトを動的にロードできます。スクリプトは、命令の実行、メモリの読み取り/書き込み、プロセスの作成/破棄など、特定のイベントが発生したときに呼び出されるコールバック関数を登録できます。

PyREBox は Volatility と統合されているため、Python スクリプトでメモリフォレンジック用のすべての volatility プラグインを活用できます。最も有名なリバースエンジニアリングツールの多くは Python で実装されているか、少なくとも Python バインディングを持っています。私たちのアプローチにより、これらのツールをスクリプトに統合できます。

最後に、Python のコールバックは、命令実行のような頻繁なイベントでパフォーマンスの低下を引き起こす可能性があるため、トリガー を作成することも可能です。トリガー は、Python コールバックが実行される直前に、任意のイベントで実行時に動的に挿入できるネイティブコードプラグイン(C/C++ で開発)です。これにより、Python コードに到達するイベントの数を制限したり、ネイティブコードで値を事前計算したりできます。

このリポジトリには、独自のコードを作成する際に役立つサンプルスクリプト_ があります。コントリビューションを歓迎します。

謝辞

まず第一に、PyREBox は QEMU_ と Volatility_ なしでは実現できませんでした。開発者とメンテナーの素晴らしい仕事に感謝します。

PyREBox は、DECAF_ や PANDA_ などのいくつかの学術プロジェクトに触発されています。実際、PyREBox がサポートするコールバックの多くは DECAF_ のものと同等であり、インストルメンテーションの背後にある概念はこれらの研究に基づいています。

PyREBox はサードパーティのコードを利用しており、それらはディレクトリ pyrebox/third_party 以下にあります。サードパーティプロジェクトごとに、元のライセンス、プロジェクトから取得した元のソースコードファイル、および PyREBox が使用するソースコードファイルの修正版(該当する場合)の表示を含めています。

ツールをダウンロード