
Hookerは、Androidアプリケーションの動的分析のためのオープンソースプロジェクトです。このプロジェクトは、対象となるアプリケーションによって行われるAPI呼び出しを自動的にインターセプトおよび変更するために使用できる、さまざまなツールやアプリケーションを提供します。
Hookerは、Androidアプリケーションの動的解析のためのオープンソースプロジェクトです。このプロジェクトは、対象のアプリケーションによって行われたAPI呼び出しを自動的に傍受および変更するために使用できるさまざまなツールとアプリケーションを提供します。
このプロジェクトは、Android Substrateフレームワークを利用してこれらの呼び出しを傍受し、そのコンテキスト情報(パラメータ、戻り値など)をすべて集約します。収集された情報は、ElasticSearchまたはJSONファイルに保存できます。
また、一連のアプリケーションによって行われたすべてのAPI呼び出しを収集する解析の実行を自動化するためのPythonスクリプトも提供されています。
Android-Hookerは、Substrateフレームワークに依存する概念実証です。つまり、お使いのデバイスにSubstrateが正しくインストールされていない場合、Hookerは動作しません。現時点では、作者はAndroid 4.1および4.2のデバイスにSubstrateをインストールすることに成功しています。より上位のバージョンにSubstrateをインストールする方法をご存知の方は、[email protected]までメールでお知らせください。このプロジェクトに統合できれば幸いです。
Hookerは複数のモジュールで構成されています:
私たちはDebian 64ビットシステムを使用してHookerを開発しました。そのため、不適切なパスやパラメータにより、他のシステムでは正しく実行できない可能性があります。これらの非互換性を特定するためのご協力をいただければ幸いです。使用中にエラーが発生した場合は、バグトラッカーに問題を報告してください。
Hookerを使用するには、以下をインストールしたサーバーが少なくとも1台必要です:
このステップはElasticSearchのインストールに関するものです。ElasticSearchのオンラインドキュメント http://www.elasticsearch.org/overview/elkdownloads/ をダウンロードして参照してください。ElasticSearchを単一ホストにインストールするか、ElasticSearchノードのクラスタをデプロイすることができます。
Androidバンドルはここからダウンロードできます。Hookerのインストールスクリプトを使用するには、次のことを行う必要があります:
環境変数 ANDROID_HOME を設定してください:$ export ANDROID_HOME=/path/to/your/sdk/folder
SDKマネージャーからSDK APIをダウンロードします。
必要な依存関係をすべてビルドおよびインストールするためのインストールスクリプトが提供されています。 このスクリプトを使用する場合は、次の依存関係がインストールされていることを確認してください:
# openjdk-7-jdk, ant, python-setuptools (just apt install them)
準備ができたら、Hookerのルートディレクトリでインストールスクリプトを実行します:
$ ./install.sh
$ $ANDROID_HOME/tools/android list target。cd tools/emulatorCreator && python HookerInstaller.py -s SDK_PATH -a Hooker_test -t ANDROID_TARGET -d AVD_DIRECTORY、Menu > System Settings > Security > Screen lock > None参考までに、エミュレータの準備方法のビデオをこちらで見ることができます。
elasticsearchホストがAndroidエミュレータとは別のホストにある場合は、ネットワーク経由でトラフィックをリダイレクトする必要があります。これを行うには、socatを使用できます:
$ socat -s -v TCP4-LISTEN:9200,fork,ignoreeof,reuseaddr TCP4:192.168.98.11:9200,ignoreeof
OpenGLESエミュレーションに関するエラー(Could not load OpenGLES emulation library)が発生した場合は、ldconfigを(rootとして)編集する必要があります:
# echo "/path/to/your/sdk/tools/lib" > /etc/ld.so.conf.d/android.conf
# ldconfig
1つの特定のアプリケーションを解析する手動実験の実行方法に関するデモを、このビデオで見ることができます。
実機でHookerを使用したい場合は、まず専用のREADMEをお読みください。
hooker_xp/sampleManualAnalysis.conf をコピーします。hooker_xp/sampleAutomaticAnalysis.conf をコピーします。*RealDevice* 設定ファイルのいずれかをコピーします。Hookerはイベントを保存するためにElasticSearchを、それらを解析するためのフロントエンドとしてKibanaを使用します。アプリケーションの解析を支援するために、tools/kibana-dashboard ディレクトリにKibanaダッシュボードの例を用意しました。これを使用するには、最初の実験を実行してから、filekibana-export.jsonをインポートする必要があります。ダッシュボードをインポートするには、URL http://localhost:5601 にアクセスして、次の操作を行います:
Settings -> Objects に移動します。Import をクリックします。Python実験スクリプトは hooker_xp ディレクトリにあります:
$ cd hooker_xp && python hooker_xp.py -c yourAnalysisConfigurationFile.conf
何が行われているかを説明するPythonログが表示されるはずです。
この作業の改善にご協力いただければ幸いです。 バグ修正や改善はGitHubの機能を使用して提供してください。
Hookerプロジェクトは、Georges BossertとDimitri Kirchnerによって開始されました。 2人ともフランスのITセキュリティ企業であるAMOSSYS http://www.amossys.fr に勤めています。
このソフトウェアはGPLv3ライセンスの下でライセンスされています。完全なライセンス文書については、配布ディレクトリの最上位にある LICENSE ファイルを参照してください。