
angr v9.3.0
パワフルでユーザーフレンドリーなバイナリ解析プラットフォーム!
angr
angr はプラットフォームに依存しないバイナリ解析フレームワークです。 UC Santa Barbara の Computer Security Lab、Arizona State University の SEFCOM、それらの関連 CTF チーム Shellphish、オープンソースコミュニティ、そして @rhelmot によって提供されています。
プロジェクトリンク
ホームページ: https://angr.io
プロジェクトリポジトリ: https://github.com/angr/angr
ドキュメント: https://docs.angr.io
API ドキュメント: https://docs.angr.io/en/latest/api.html
angr とは?
angr は Python 3 ライブラリ群であり、バイナリをロードしてさまざまなクールな処理を実行できます:
- 逆アセンブルと中間表現へのリフティング
- プログラムの計装
- シンボリック実行
- 制御フロー解析
- データ依存関係解析
- 値集合解析 (VSA)
- 逆コンパイル
最も一般的な angr の操作はバイナリのロードです: p = angr.Project('/bin/bash') これを IPython のような拡張 REPL で行うと、タブ補完を使用してトップレベルでアクセス可能なメソッドとその docstring を閲覧できます。
「angr のインストール方法」の短いバージョンは mkvirtualenv --python=$(which python3) angr && python -m pip install angr です。
例
angr はさまざまなバイナリ解析機能を備えています。 まず、CTF チャレンジでフラグを取得するためのシンボリック実行の簡単な例を示します。
import angr
project = angr.Project("angr-doc/examples/defcamp_r100/r100", auto_load_libs=False)
@project.hook(0x400844)
def print_flag(state):
print("FLAG SHOULD BE:", state.posix.dumps(0))
project.terminate_execution()
project.execute()
クイックスタート
- インストール手順
- HTML 形式のドキュメントと、angr Github リポジトリ 内のソース
- すぐに始める: トップレベルでアクセス可能なメソッド
- CTF チャレンジを解決する angr の使用例。
- API リファレンス
- awesome-angr リポジトリ