angr/angr は、コンパイルされた実行ファイルであるバイナリを解析するための Python 3 ベースのフレームワークだ。静的解析と動的解析、シンボリック実行によってプログラムの内部動作を調べる。
README は angr を、プラットフォームに依存しないバイナリ解析フレームワークであり Python 3 ライブラリ群でもあると説明している。バイナリを読み込んで逆アセンブルし、中間表現(IR)に変換して扱い、プログラムの計装とシンボリック実行をサポートする。IR はプログラムが行う動作を中段階の命令単位として表現したもので、シンボリック実行は入力値を実際の値ではなく記号として保持し、複数の実行経路を辿って進む解析手法である。これに制御フロー・データ依存・値集合解析(VSA)とデコンパイル機能が加わり、CTF(セキュリティコンテスト)問題解答の例も提供する。言語は Python、ライセンスは BSD-2-Clause で、2015 年 8 月 6 日に作成された。
検証できる範囲は狭い。記録に残っているのは 0~10 基準のモメンタム 2.9 のみで、新しさ・技術・品質の各スコアは示されておらず、最新リリースの情報もない。パフォーマンスベンチマーク、実際の導入事例、最近の変更履歴が資料にないため、どのバイナリをどれくらい速く解析できるかは分からない。機能リストは広いが、根拠はそのリストにとどまる。精密な解析ツールとしてそのまま使うには検証が不足しており、参考資料として見るのがよい。