
Mobile Helper Framework (mhf) は、モバイルアプリケーションの作成に使用されたフレームワーク/技術を特定するプロセスを自動化するツールです。さらに、機密情報の発見を支援したり、特定されたプラットフォームでの作業のための提案を提供します。
は、モバイルアプリケーションの作成に使用されたフレームワーク/技術を特定するプロセスを自動化するツールです。さらに、機密情報の発見を支援したり、特定されたプラットフォームでの作業に関する提案を提供します。
このツールは、設定ファイル、リソースファイル、ソースコードファイルなど、モバイルアプリケーション開発で使用される技術に関連するファイルを検索します。
検索ファイル:
index.html
cordova.js
cordova_plugins.js
検索ファイル
Andorid files:
libreactnativejni.so
index.android.bundle
iOS files:
main.jsbundle
❗Apktool を実行するには Java 8 以上が必要です。
pip install -r requirements.txt
python3 mhf.py app.apk|ipa|aab
python3 mobile_helper_framework.py file.apk
[+] App was written in React Native
Do you want analizy the application (y/n) y
Output directory already exists. Skipping decompilation.
Beauty the react code? (y/n) n
Search any info? (y/n) y
==>>Searching possible internal IPs in the file
results.........
==>>Searching possible emails in the file
results.........
==>>Searching possible interesting words in the file
results.........
==>>Searching Private Keys in the file
results.........
==>>Searching high confidential secrets
results.........
==>>Searching possible sensitive URLs in js files
results.........
==>>Searching possible endpoints in js files results.........
このツールは、Android アプリケーションの逆コンパイルに Apktool を使用します。
このツールは、iOS アプリケーションの .ipa ファイルを .zip にリネームして内容を抽出します。
パッチ適用 apk とは: このツールは Reflutter を使用します。これは、パッチ適用済みの Flutter ライブラリを使用して Flutter アプリのリバースエンジニアリングを支援するフレームワークです。
詳細: https://github.com/Impact-I/reFlutter
分割 APK は、アプリケーションのサイズを削減し、ユーザーが必要な部分のみをダウンロードして使用できるようにするために Android が使用する手法です。
単一の APK ファイルで完全なアプリケーションをダウンロードする代わりに、分割 APK はアプリケーションをリソース、コードライブラリ、アセット、設定ファイルなど、アプリケーションの一部のみを含む複数の小さな APK ファイルに分割します。
adb shell pm path com.package
package:/data/app/com.package-NW8ZbgI5VPzvSZ1NgMa4CQ==/base.apk
package:/data/app/com.package-NW8ZbgI5VPzvSZ1NgMa4CQ==/split_config.arm64_v8a.apk
package:/data/app/com.package-NW8ZbgI5VPzvSZ1NgMa4CQ==/split_config.en.apk
package:/data/app/com.package-NW8ZbgI5VPzvSZ1NgMa4CQ==/split_config.xxhdpi.apk
例えば、Flutter でアプリケーションが分割されている場合、split_config.arm64_v8a.apk にパッチを適用する必要があります。このファイルには libflutter.so が含まれています。
| 機能 | 備考 | Cordova | React Native | Native JavaScript | Flutter | Xamarin |
|---|
| JavaScript の整形 | 最初の数回はこれを使用すると、より良い結果が得られます。 | ✅ | ✅ | ✅ | ||
| 複数の機密情報の特定 | IP、秘密鍵、API キー、メール、URL | ✅ | ✅ | ✅ | ❌ | |
| 暗号化関数 | ✅ | ✅ | ✅ | ❌ | ❌ | |
| エンドポイント抽出 | ✅ | ✅ | ✅ | ❌ | ❌ | |
| コードが整形されたか自動検出 | ❌ | ❌ | ❌ | |||
| デバイス/エミュレーターからの apk 自動抽出 | ❌ | ❌ | ❌ | ❌ | ❌ | |
| apk のパッチ適用 | ✅ | |||||
| バンドルファイルから APK を抽出 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| JS ファイルが暗号化されているか検出 | ❌ | ❌ | ||||
| リソースが圧縮されているか検出 | ❌ | Hermes✅ | ❌ | ❌ | XALZ✅ | |
| アプリが分割されているか検出 | ❌ | ❌ | ❌ | ❌ | ❌ |