
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.........
Этот инструмент использует Apktool для декомпиляции приложений Android.
Этот инструмент переименовывает файл .ipa приложений iOS в .zip и извлекает содержимое.
Что такое патчинг apk: Этот инструмент использует Reflutter — фреймворк, который помогает при обратной разработке приложений Flutter с помощью пропатченной версии библиотеки Flutter.
Дополнительная информация: https://github.com/Impact-I/reFlutter
Split APKs — это техника, используемая Android для уменьшения размера приложения и позволяющая пользователям загружать и использовать только необходимые части приложения.
Вместо загрузки полного приложения в одном APK-файле Split 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-ключи, email, URL | ✅ | ✅ | ✅ | ❌ | |
| Криптографические функции | ✅ | ✅ | ✅ | ❌ | ❌ | |
| Извлечение конечных точек | ✅ | ✅ | ✅ | ❌ | ❌ | |
| Автоматически определяет, был ли код улучшен. | ❌ | ❌ | ❌ | |||
| Автоматически извлекает apk с устройств/эмулятора | ❌ | ❌ | ❌ | ❌ | ❌ | |
| Патчинг apk | ✅ | |||||
| Извлечение APK из файла bundle. | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Обнаружение зашифрованных JS-файлов | ❌ | ❌ | ||||
| Обнаружение сжатых ресурсов. | ❌ | Hermes✅ | ❌ | ❌ | XALZ✅ | |
| Обнаружение разделённого приложения | ❌ | ❌ | ❌ | ❌ | ❌ |