Вопросы на которые все устали отвечать
- FAQ
- Как перехватить трафик приложения?
- Пытаюсь перехватить трафик так, как написано выше, ничего не выходит, что делать?
- Как получить права root на смартфоне?
- Как написать вирус?
- Как шифровать данные?
- Как сделать проверку на root?
- Не могу установить/заставить работать/скачать %название инструмента%, что делать?
- Чем декомпилировать код приложения?
- Как изменить поведение чужого приложения?
- Как подписать пересобранное приложение?
- Можно ли изменить приложение с сохранением оригинальной цифровой подписи?
- Код приложения обфусцирован, всюду китайские символы и зашифрованные строки. Что делать?
- Как получить apk файл приложения?
- Где почитать про уязвимости в приложениях и техники их устранения?
- Меня посадят если я буду реверсить чужие приложения?
Взять Charles, Fiddler, Burp Suite или mitmproxy и нагуглить любой понравившийся мануал. Секретный google дорк может выглядеть так: charles proxy intercept android traffic.
Общий алгоритм в любом мануале как правило сводится к такому:
- Запустить прокси на компьютере
- Установить на устройство сертификат предоставляемый проксей
- В настройках сети на смартфоне указать адрес хостовой машины и порт
- Запустить на смартфоне приложение, которое нужно изучить
- ???????
- PROFIT!
В отдельных, клинических случаях может потребоваться использование приложения вроде ProxyDroid (нужен root). Если ничего не работает, то вот гайд по решению проблем - Перехват трафика в Android. Большой гайд
Скорее всего в приложение применяется ssl pinning. Иногда он отключается просто, иногда не очень. Простые способы:
- В APKLab есть опция пересборки приложения с отключением пиннинга
- Похожая опция есть в Objection
- В Xposed под это есть модули: SSLUnpinning и JustTrustMe
- Скрипт для Frida
Если ничего из приведенного выше не помогло победить пиннинг, то выкорчевывать его придется руками. Пример такой работы есть в этом видео.
Самый простой и актуальный способ — использовать Magisk, если он не работает, то искать конкретное решение для вашей модели или смириться.
Никак, это запрещено ст. 273 УК РФ
Если нужно шифровать просто что-нибудь, то лучше использовать библиотеку Tink. Но как правило нужно шифровать преференсы или файлы. В этом случае нужно использовать библиотеку security-crypto из Android JetPack
Использовать библиотеку RootBeer или SafetyNet Attestation API
Для проверки рута из натива есть неплохая и удобно дописываемая либа: https://github.com/DimaKoz/meat-grinder
У неё даже есть демо приложение
Но magiskhide она пробить всё равно не может, зато может выявить более примитивные велосипеды пытающиеся спрятать рут, или инструменты хукающие из андроид рантайма, например xposed
Если не получается что-то сделать по официальной инструкции, то тут возможно два варианта:
- Нарушены системные требования (версии библиотек и т.п.)
- Вы используете не ту версию, которая описана в инструкции
Вторая проблема решается просто — всегда сверяйтесь с версиями утилит для которых написан мануал.
С первой проблемой все несколько сложнее, потому что системные требования не всегда очевидны. В большинстве случаев от этого спасает Docker, т.к. позволяет не гадить в системе и легко создавать нужные окружения.
Если денег нет, то Jadx, если деньги есть то Jeb
Распаковать с помощью apktool, внести правки в smali-код в любом текстовом редакторе, собрать с помощью apktool обратно и подписать своим ключом.
# Сгенерировать ключ
$ keytool -genkey -v -keystore fake.keystore -storepass fake-fake -alias fake -keypass fake-fake -keyalg RSA -keysize 2048 -validity 10000
# "Выровнять" и подписать приложение
$ zipalign -c 4 app-release/dist/app-release.apk
$ apksigner sign --ks fake.keystore --ks-key-alias fake --ks-pass pass:fake-fake --key-pass pass:fake-fake app-release/dist/app-release.apk
Нет
Простые случаи обфускации вполне себе разматывает Jadx, для более сложных можно применить Simplify или DeGuard. Но иногда вообще ничего не помогает и придется тратить часы/дни/годы на распутывание поведения приложения.
Взять с сайта APKPure/APKMirror или стянуть уже установленное с устройства.
- OWASP Mobile Top Ten
- OWASP Mobile Application Security Verification Standard
- Security Code Smells in Android ICC
- android-app-vulnerability-benchmarks
- Oversured(blog)
Может да, а может и нет. Зависит от возможности соблюсти все необходимые условия предусмотренные законодательством. Подробности есть в этой статье