Mobile Application Hacking Diary Ep.2 - статья с описанием различных техник изменения поведения приложений Android и iOS на примере обхода на проверки наличия прав root на устройстве. Итак, три разные техники:
1. Изменение кода. Декомпилируем приложение с помощью Bytecode Viewer (автор рекомендует использовать именно его из-за наличия сразу нескольких движков декомпиляции в комплекте). Находим нужный участок кода, дизассемблируем приложение с помощью apktool, находим тот же участок кода и изменяем возвращаемое им значение (например, true на false). Собираем обратно и устанавливаем.
2. Изменение кода на лету с помощью отладчика. Распаковываем приложение с помощью apktool, изменяем значение поля android:debuggable в AndroidManifest.xml на true, запаковываем обратно. Подключаемся к приложению с помощью отладчика AndBug и выполняем трассировку в поисках нужного нам метода. Затем подключаемся к приложению с помощью jdb, ставим брейкпоинт на нужный метод и изменяем возвращаемое им значение.
3. Автоматическое изменение кода на лету с помощью Frida. Инструмент Frida позволяет выполнить трассировку и внедрить свой код в любое приложение на смартфоне. В примере автор использует скрипт для поиска нужного метода, а затем приводит пример скрипта, который находит этот метод и изменяет возвращаемое им значение. Однако в большинстве случаев тебе даже не придется самому писать скрипты. В репозитории Frida CodeShare можно найти множество уже готовых.
1. Изменение кода. Декомпилируем приложение с помощью Bytecode Viewer (автор рекомендует использовать именно его из-за наличия сразу нескольких движков декомпиляции в комплекте). Находим нужный участок кода, дизассемблируем приложение с помощью apktool, находим тот же участок кода и изменяем возвращаемое им значение (например, true на false). Собираем обратно и устанавливаем.
2. Изменение кода на лету с помощью отладчика. Распаковываем приложение с помощью apktool, изменяем значение поля android:debuggable в AndroidManifest.xml на true, запаковываем обратно. Подключаемся к приложению с помощью отладчика AndBug и выполняем трассировку в поисках нужного нам метода. Затем подключаемся к приложению с помощью jdb, ставим брейкпоинт на нужный метод и изменяем возвращаемое им значение.
3. Автоматическое изменение кода на лету с помощью Frida. Инструмент Frida позволяет выполнить трассировку и внедрить свой код в любое приложение на смартфоне. В примере автор использует скрипт для поиска нужного метода, а затем приводит пример скрипта, который находит этот метод и изменяет возвращаемое им значение. Однако в большинстве случаев тебе даже не придется самому писать скрипты. В репозитории Frida CodeShare можно найти множество уже готовых.