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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
BinAbsInspector — Ghidra Pcode 上の抽象解釈を使用した静的バイナリ脆弱性スキャナー。Z3 を用いたシンボリック実行により、バッファオーバーフロー、解放後使用、コマンドインジェクションなどの CWE クラスを検出します。 | Kitploit
ツール/GitHubGitHub/keensecuritylab/binabsinspector
静的分析脆弱性スキャナーリバースエンジニアリングファジングバイナリ解析
GitHubkeensecuritylab/binabsinspector

BinAbsInspector

Ghidra Pcode 上の抽象解釈を使用した静的バイナリ脆弱性スキャナー。Z3 を用いたシンボリック実行により、バッファオーバーフロー、解放後使用、コマンドインジェクションなどの CWE クラスを検出します。

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

BinAbsInspector とは?

BinAbsInspector (Binary Abstract Inspector) は、バイナリの自動リバースエンジニアリングと脆弱性スキャンのための静的解析ツールであり、Keenlab でインキュベートされた長期研究プロジェクトです。これは抽象解釈に基づき、Ghidra のサポートを受けています。アセンブリの代わりに Ghidra の Pcode で動作します。現在、x86、x64、armv7、aarch64 上のバイナリをサポートしています。

インストール

  • Ghidraのドキュメントに従って Ghidra をインストールします。
  • Z3 をインストールします(テスト済みバージョン: 4.8.15)。
  • Z3 ライブラリには一般的に 2 つのパートがあることに注意してください。1 つは Java パッケージ、もう 1 つはネイティブライブラリです。Java パッケージは既に "/lib" ディレクトリに含まれていますが、バージョン互換性のため、独自の Java パッケージに置き換えることをお勧めします。
    • Windows の場合: ここからプリビルドパッケージをダウンロードし、zip ファイルを展開して、z3-${version}-win/bin を指す PATH 環境変数を追加します。
    • Linux の場合: パッケージマネージャでのインストールは推奨されません。以下の 2 つの方法があります。
      1. ここから適切なプリビルドパッケージをダウンロードし、zip ファイルを展開して、z3-${version}-glibc-${version}/bin/*.so を /usr/local/lib/ にコピーします。
      2. または、Building Z3 using make and GCC/Clang に従って Z3 をビルドしてインストールします。
    • MacOS の場合: Linux と同様です。
  • リリースページから拡張機能の zip ファイルをダウンロードします。
  • Ghidra拡張機能の注意事項に従って拡張機能をインストールします。

ビルド

自分で拡張機能をビルドする場合は、開発ガイドを参照してください。

  • Ghidra と Z3 をインストールします。
  • Gradle 7.x をインストールします(テスト済みバージョン: 7.4)。
  • リポジトリをクローンします。
  • リポジトリルートで gradle buildExtension を実行します。
  • 拡張機能は dist/${GhidraVersion}_${date}_BinAbsInspector.zip に生成されます。

使用方法

BinAbsInspectorは、ヘッドレスモード、GUIモード、またはDockerで実行できます。

  • Ghidraヘッドレスモードの場合
root@kitploit:~
$GHIDRA_INSTALL_DIR/support/analyzeHeadless <projectPath> <projectName> -import <file> -postScript BinAbsInspector "@@<scriptParams>"

<projectPath> -- Ghidraプロジェクトパス。
<projectName> -- Ghidraプロジェクト名。
<scriptParams> -- アナライザの引数。以下のオプションを提供します。

  • Ghidra GUIの場合

    1. Ghidraを起動し、対象のバイナリをプロジェクトにインポートします。
    2. デフォルト設定でバイナリを解析します。
    3. 解析が完了したら、Window -> Script Managerを開き、BinAbsInspector.javaを見つけます。
    4. BinAbsInspector.javaエントリをダブルクリックし、設定ウィンドウでパラメータを設定してOKをクリックします。
    5. 解析が完了すると、コンソールウィンドウにCWEレポートが表示されます。レポート内のアドレスをダブルクリックすると、対応するアドレスにジャンプできます。
  • Dockerの場合

root@kitploit:~
git clone [email protected]:KeenSecurityLab/BinAbsInspector.git
cd BinAbsInspector
docker build . -t bai
docker run -v $(pwd):/data/workspace bai "@@<script parameters>" -import <file>

実装済みチェッカー

現在、BinAbsInspectorは以下のチェッカーをサポートしています:

  • CWE78 (OSコマンドインジェクション)
  • CWE119 (バッファオーバーフロー(汎用))
  • CWE125 (バッファオーバーフロー(境界外読み取り))
  • CWE134 (外部制御フォーマット文字列の使用)
  • CWE190 (整数オーバーフローまたはラップアラウンド)
  • CWE367 (TOCTOU(時刻確認時刻使用))
  • CWE415 (ダブルフリー)
  • CWE416 (解放後使用)
  • CWE426 (信頼できない検索パス)
  • CWE467 (ポインタ型に対するsizeof()の使用)
  • CWE476 (NULLポインタ参照)
  • CWE676 (潜在的に危険な関数の使用)
  • CWE787 (バッファオーバーフロー(境界外書き込み))

プロジェクト構造

このプロジェクトの構造は以下の通りです。詳細については、技術詳細または中国語版記事を参照してください。

root@kitploit:~
├── main
│   ├── java
│   │   └── com
│   │       └── bai
│   │           ├── checkers                       checker implementatiom
│   │           ├── env
│   │           │   ├── funcs                      function modeling
│   │           │   │   ├── externalfuncs          external function modeling
│   │           │   │   └── stdfuncs               cpp std modeling
│   │           │   └── region                     memory modeling
│   │           ├── solver                         analyze core and grpah module
│   │           └── util                           utilities
│   └── resources
└── test

また、gradle javadoc でjavadocをビルドすることもできます。APIドキュメントは ./build/docs/javadoc に生成されます。

謝辞

私たちは基盤としてGhidraを採用し、パフォーマンス向上のためにJImmutable Collectionsを頻繁に利用しています。
ここに、多大なご協力に感謝の意を表します!

ツールをダウンロード
パラメータ説明
[-K <kElement>]KSetサイズ制限 K
[-callStringK <callStringMaxLen>]コール文字列最大長 K
[-Z3Timeout <timeout>]Z3タイムアウト
[-timeout <timeout>]解析タイムアウト
[-entry <address>]エントリアドレス
[-externalMap <file>]外部関数モデル設定
[-json]JSON形式で出力
[-disableZ3]Z3を無効化
[-all]すべてのチェッカーを有効化
[-debug]デバッグログ出力を有効化
[-check "<cweNo1>[;<cweNo2>...]"]特定のチェッカーを有効化