Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/nccgroup/idahunt
組み込みシステムセキュリティ脆弱性分析リバースエンジニアリングスクリプトと自動化マルウェア分析バイナリ解析ファームウェア解析
GitHubnccgroup/idahunt

idahunt

idahuntは、IDA Proでバイナリを分析し、IDA Pro内でものを探すためのフレームワークです。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

  • 概要
    • 要件
    • 機能
    • スクリプティング
  • 使い方
    • 実行せずにシミュレートする
    • 初期解析
    • IDA Pythonスクリプトを実行する
    • バイナリ差分
      • 要件
      • 初期解析
      • ファイルの差分
      • 関数の差分
    • フィルタ
      • アーキテクチャ検出
      • ターゲット固有
  • idahunt を使用している既知のプロジェクト

概要

idahunt は、IDA Pro でバイナリを解析し、IDA Pro 内の情報を探すためのフレームワークです。 指定されたフォルダから再帰的にすべての実行可能ファイルを解析するコマンドラインツールです。 バックグラウンドで IDA を実行するため、各ファイルを手動で開く必要はありません。 外部の IDA Python スクリプトの実行にも対応しています。

要件

  • Python3 のみ(IDA Python スクリプトは、IDA のセットアップによっては Python2/Python3 のどちらにも対応)
  • IDA Pro
  • Windows、Linux、OS X

機能

  • 同時に実行する IDA インスタンス数を指定できる
  • 複数の実行可能ファイルに対する IDB の作成を自動化
  • 複数の実行可能ファイルに対して IDA Python スクリプトを実行
  • 既存の複数の IDB を開く
  • IDA が対応する任意のバイナリ形式(raw assembly/PE/ELF/MACH-O など)をサポート
  • (任意)IDA Python ヘルパーを含める。これらを使うと、 独自の IDA Python スクリプトを簡単に作成できます。また、sark や bip などの 他の IDA Python ライブラリも利用できます(ほんの一例です)

有用な例としては、以下があります(網羅的ではありません):

  • Microsoft Patch Tuesday の更新プログラムを解析
  • 同系のマルウェアを解析
  • 同じソフトウェアの複数バージョンを解析
  • 多数のバイナリを解析(UEFI、HP iLO、Cisco IOS ルータ、Cisco ASA ファイアウォールなど)

スクリプティング

IDA Python スクリプトの機能は無限です。既存の IDA Python スクリプトを インポートすることも、独自に作成することもできます。いくつかの例:

  • デバッグ文字列に基づいて関数名を変更
  • 文字列を復号化する(例:マルウェア)
  • 複数のバージョンにわたって同じシンボルを探す(ヒューリスティックを使用)
  • ROP ガジェットを探す
  • diaphora などのツールを使って、リバースエンジニアリングした関数名/シンボルをあるバージョンから別のバージョンへ移植
  • など

使い方

  • idahunt.py: 実行可能ファイルを解析するためのメインツール
  • filters/: 入力ディレクトリ内のどのファイルを IDA で解析するかを決定する基本的なフィルタを含む
    • filters/default.py: 何もフィルタリングしないデフォルトの基本フィルタ。デフォルトで使用
    • filters/ciscoasa.py: Cisco ASA ファイアウォールイメージの解析に有用
    • filters/hpilo.py: HP iLO イメージの解析に有用
    • filters/names.py: 名前、名前の長さ、または拡張子に基づく基本フィルタ
  • script_template.py: hello world IDA Python スクリプトを含む
C:\idahunt> C:\Python37-x64\python.exe .\idahunt.py -h
usage: idahunt.py [-h] [--inputdir INPUTDIR] [--analyse] [--open]
                  [--ida-args IDA_ARGS] [--scripts SCRIPTS [SCRIPTS ...]]
                  [--filter FILTER] [--cleanup] [--temp-cleanup] [--verbose]
                  [--max-ida MAX_IDA] [--list-only] [--version IDA_VERSION]

optional arguments:
  -h, --help            show this help message and exit
  --inputdir INPUTDIR   Input folder to search for files
  --analyse, --analyze  analyse all files i.e. create .idb for all of them
  --open                open all files into IDA (debug only)
  --ida-args IDA_ARGS   Additional arguments to pass to IDA (e.g.
                        -p<processor> -i<entry_point> -b<load_addr>)
  --scripts SCRIPTS [SCRIPTS ...]
                        List of IDA Python scripts to execute in this order
  --filter FILTER       External python script with optional arguments
                        defining a filter for the names of the files to
                        analyse. See filters/names.py for example
  --cleanup             Cleanup i.e. remove .asm files that we don't need
  --temp-cleanup        Cleanup temporary database files i.e. remove .id0,
                        .id1, .id2, .nam, .dmp files if IDA Pro crashed and
                        did not delete them
  --verbose             be more verbose to debug script
  --max-ida MAX_IDA     Maximum number of instances of IDA to run at a time
                        (default: 10)
  --list-only           List only what files would be handled without
                        executing IDA
  --version IDA_VERSION
                        Override IDA version (e.g. "7.5"). This is used to
                        find the path of IDA on Windows.

実行せずにシミュレートする

--list-only は、任意のコマンドラインと一緒に使用すると、ツールが実際に実行せずに 何を行うかを一覧表示するだけです。

C:\idahunt>idahunt.py --inputdir C:\re --analyse --filter "filters\names.py -a 32 -v" --list-only
[idahunt] Simulating only...
[idahunt] ANALYSING FILES
[idahunt] Analysing C:\re\cves\cve-2014-4076.dll
[idahunt] Analysing C:\re\cves\cve-2014-4076.exe
[idahunt] Analysing C:\re\DownloadExecute.exe
[idahunt] Analysing C:\re\ReverseShell.exe

初期解析

ここでは初期解析を開始します。数秒で完了します:

C:\idahunt>idahunt.py --inputdir C:\re --analyse --filter "filters\names.py -a 32 -v"
[idahunt] ANALYSING FILES
[idahunt] Analysing C:\re\cves\cve-2014-4076.dll
[idahunt] Analysing C:\re\cves\cve-2014-4076.exe
[idahunt] Analysing C:\re\DownloadExecute.exe
[idahunt] Analysing C:\re\ReverseShell.exe
[idahunt] Waiting on remaining 4 IDA instances

ここでは、初期解析で作成された一時的な .asm ファイルをクリーンアップします:

C:\idahunt>idahunt.py --inputdir C:\re --cleanup
[idahunt] Deleting C:\re\cves\cve-2014-4076.asm
[idahunt] Deleting C:\re\DownloadExecute.asm
[idahunt] Deleting C:\re\ReverseShell.asm

生成された .idb と、IDA Pro の出力ウィンドウの内容を含む .log ファイルも確認できます。

C:\idahunt>tree /f C:\re
Folder PATH listing
Volume serial number is XXXX-XXXX
C:\RE
│   DownloadExecute.exe
│   DownloadExecute.idb
│   DownloadExecute.log
│   ReverseShell.exe
│   ReverseShell.idb
│   ReverseShell.log
│
└───cves
        cve-2014-4076.dll
        cve-2014-4076.exe
        cve-2014-4076.idb
        cve-2014-4076.log

IDA Pythonスクリプトを実行する

ここでは、IDA Pro の出力ウィンドウに [script_template] I execute in IDA, yay! と表示する基本的な IDA Python スクリプトを実行します。

C:\idahunt>idahunt.py --inputdir C:\re --filter "filters\names.py -a 32 -v" --scripts C:\idahunt\script_template.py
[idahunt] EXECUTE SCRIPTS
[idahunt] Executing script C:\idahunt\script_template.py for C:\re\cves\cve-2014-4076.dll
[idahunt] Executing script C:\idahunt\script_template.py for C:\re\cves\cve-2014-4076.exe
[idahunt] Executing script C:\idahunt\script_template.py for C:\re\DownloadExecute.exe
[idahunt] Executing script C:\idahunt\script_template.py for C:\re\ReverseShell.exe
[idahunt] Waiting on remaining 4 IDA instances

これは .log ファイルに保存されるため、正常に実行されたことを確認できます:

Autoanalysis subsystem has been initialized.
Database for file 'ReverseShell.exe' has been loaded.
Compiling file 'C:\Program Files (x86)\IDA 6.95\idc\ida.idc'...
Executing function 'main'...
[script_template] I execute in IDA, yay!

バイナリ差分

idahunt は、この PR 以降、diaphora と見事に連携してバイナリ差分を実行できます。

要件

同じファイル名の異なるバージョンを持つフォルダ階層が必要です。例:

C:\> tree C:\tests\ /F
C:\tests
├───patch
│       tm.sys
│
└───vuln
        tm.sys

初期解析

まだ完了していない場合は、IDB を作成するための初期 IDA 解析を実行する必要があります。

C:\idahunt> python idahunt.py --inputdir C:\tests\ --analyse --verbose
[idahunt] IDA32 = C:\Program Files\IDA Core 8.1\ida.exe
[idahunt] IDA64 = C:\Program Files\IDA Core 8.1\ida64.exe
[idahunt] ANALYSING FILES
[idahunt] Analysing C:\tests\patch\tm.sys
[idahunt] C:\Program Files\IDA Core 8.1\ida64.exe -B -oC:\tests\patch\tm.i64 -LC:\tests\patch\tm.log C:\tests\patch\tm.sys
[idahunt] Analysing C:\tests\vuln\tm.sys
[idahunt] C:\Program Files\IDA Core 8.1\ida64.exe -B -oC:\tests\vuln\tm.i64 -LC:\tests\vuln\tm.log C:\tests\vuln\tm.sys
[idahunt] Executed IDA 2/2 times IDA instances
[idahunt] Took 0:00:15.03 to execute this
C:\> tree C:\tests\ /F
C:\tests
├───patch
│       tm.i64
│       tm.log
│       tm.sys
│
└───vuln
        tm.i64
        tm.log
        tm.sys

ファイルの差分

これは diaphora を使用して、各ファイルの差分エクスポートを行い(<filename>.sqlite sqlite3 データベースを作成)、その後バージョン間の差分を実行します(<filename>.diaphora sqlite3 データベースを作成)。

ツールをダウンロード