PulseAPK
PulseAPK — это профессиональный GUI для обратной инженерии Android и анализа безопасности, созданный на WPF и .NET 8. Он объединяет мощь apktool с расширенными возможностями статического анализа, упакованными в высокопроизводительный интерфейс в стиле киберпанк. PulseAPK оптимизирует весь рабочий процесс: от декомпиляции до анализа, пересборки и подписания.
Смотреть демо на YouTube

Также можно выполнять анализ кода Smali. Просто перетащите папку Smali на вкладку Analysis.

Если вы хотите собрать (и при необходимости подписать) папку Smali — используйте раздел "Build APK".

Ключевые возможности
- 🛡️ Статический анализ безопасности: Автоматически сканирует код Smali на уязвимости, включая обнаружение рута, проверки эмулятора, жестко заданные учетные данные и небезопасное использование SQL/HTTP.
- ⚙️ Динамический движок правил: Полностью настраиваемые правила анализа через
smali_analysis_rules.json. Изменяйте шаблоны обнаружения на лету без перезапуска приложения. Используется кэширование для оптимальной производительности.
- 🚀 Современный UI/UX: Отзывчивый темный интерфейс, созданный для эффективности, с поддержкой drag-and-drop и отображением консольного вывода в реальном времени.
- 📦 Полный рабочий цикл: Декомпиляция, анализ, редактирование, перекомпиляция и подпись APK в едином окружении.
- ⚡ Безопасность и надежность: Включает интеллектуальную валидацию и предотвращение сбоев для защиты рабочего пространства и данных.
- 🔧 Полная настройка: Управление путями к инструментам (Java, Apktool), настройками рабочего пространства и параметрами анализа.
Расширенные возможности
Анализ безопасности
PulseAPK включает встроенный статический анализатор, который сканирует декомпилированный код на распространенные индикаторы безопасности:
- Обнаружение рута: Выявляет проверки Magisk, SuperSU и распространенных бинарников рута.
- Обнаружение эмулятора: Находит проверки QEMU, Genymotion и специфических системных свойств.
- Конфиденциальные данные: Ищет жестко заданные API-ключи, токены и заголовки basic auth.
- Небезопасное сетевое взаимодействие: Отмечает использование HTTP и потенциальные точки утечки данных.
Правила определяются в smali_analysis_rules.json и могут быть настроены под ваши задачи.
Управление APK
- Декомпиляция: Легко декодируйте ресурсы и исходники с настраиваемыми опциями.
- Перекомпиляция: Пересобирайте ваши измененные проекты в валидные APK.
- Подписание: Встроенное управление keystore для подписи пересобранных APK, чтобы они были готовы к установке на устройство.
Требования
- Java Runtime Environment (JRE): Требуется для
apktool. Убедитесь, что java находится в PATH.
- Apktool: Скачайте
apktool.jar с ibotpeaches.github.io.
- Ubersign (Uber APK Signer): Требуется для подписи пересобранных APK. Скачайте последнюю версию
uber-apk-signer.jar из GitHub releases.
- .NET 8.0 Runtime: Требуется для запуска PulseAPK в Windows.
Быстрый старт
-
Скачать и собрать
-
Настройка
- Откройте Settings.
- Укажите путь к
apktool.jar.
- PulseAPK автоматически обнаружит установленную Java на основе переменных окружения.
-
Анализ APK
- Декомпилируйте целевой APK во вкладке Decompile.
- Перейдите на вкладку Analysis.
- Выберите папку с декомпилированным проектом.
- Нажмите Analyze Smali, чтобы получить отчет безопасности.
-
Изменение и пересборка
- Редактируйте файлы в папке проекта.
- Используйте вкладку Build для пересборки в новый APK.
- Используйте вкладку Sign для подписи выходного APK.
Техническая архитектура
PulseAPK использует чистую архитектуру MVVM (Model-View-ViewModel):
- Core: .NET 8.0, WPF.
- Analysis: Пользовательский статический анализатор на базе regex с правилами горячей перезагрузки.
- Services: выделенные сервисы для работы с Apktool, мониторинга файловой системы и управления настройками.
Лицензия
Этот проект с открытым исходным кодом и доступен по лицензии Apache License 2.0.
❤️ Поддержите проект
Если PulseAPK полезен для вас, вы можете поддержать его разработку, нажав кнопку "Support" вверху.
Звездочка репозитория тоже очень помогает.
Вклад
Мы приветствуем вклад в проект! Обратите внимание, что все контрибьюторы должны подписать наше Соглашение о передаче авторских прав (CLA), чтобы их работа могла быть законно распространена.
Отправляя pull request, вы соглашаетесь с условиями CLA.