このプロジェクトについて

unidbgは、Androidネイティブライブラリ(ELF)およびiOSバイナリ(Mach-O)をエミュレートするために設計された、オープンソースのJavaベースプロジェクトです。主にモバイルアプリケーションのセキュリティ研究、リバースエンジニアリング、動的解析に使用されます。 主な機能は以下のとおりです。 - **アーキテクチャサポート**: ARM32およびARM64バイナリコードをエミュレートします。 - **複数のバックエンド**: Unicorn、dynarmic、Apple M1ハイパーバイザー(macOS上での高速ARM64エミュレーション用)、Raspberry Pi上のLinux KVMをサポートします。 - **AI支援デバッグ(MCP)**: Model Context Protocol(MCP)を統合し、AIツール(Cursorなど)がエミュレーション中にレジスタ、メモリ、逆アセンブルを動的に検査し、ブレークポイントを設定し、命令をトレースし、ネイティブ関数を呼び出すことを可能にします。 - **フックサポート**: Dobbyによるインラインフック、xHookによるAndroidインポートフック、fishhook、substrate、whaleによるiOSフックを統合します。 - **JNIエミュレーション**: JNI Invocation API、JavaVM、JNIEnvをサポートし、JNI_OnLoadの実行を可能にします。 - **メモリリーク検出**: ゲストメモリの割り当てを追跡し、ゲストARMバックトレースとホストJavaスタックトレースの両方を含むレポートを生成します。 - **ワーカープール**: 並行タスク処理時のリソース初期化オーバーヘッドを削減するスレッドセーフなエミュレータプールを提供します。 - **デバッグとトレース**: コンソールデバッガ、GDBスタブ、命令トレース、メモリ読み書きトレースを備えています。