Многие пользователи Android получают удовольствие от рутирования своего устройства — в конце концов, оно должно быть полностью открытой операционной системой. Однако некоторые бренды устройств и разработчики приложений не хотят, чтобы мы рутировали наши устройства, и стараются изо всех сил вызывать у нас головную боль, когда мы рутируем наши устройства. Это означает, что некоторые приложения просто отказываются запускаться, если обнаруживает, что ваше Android-устройство имеет root-права.
Теперь, как правило, вы всегда можете использовать безсистемный корневой метод или некоторую форму скрытия рута (не всегда надежную), чтобы приложения не могли обнаружить, что ваше Android-устройство имеет root-права. Или мы можем пойти по суперстерильной дороге, разорвать эти APK и перестроить их, чтобы совсем не обнаружить root. Это руководство как раз для этого, поэтому давайте засучим рукава, потому что наши руки испачкаются.
Предупреждение. В этом руководстве предполагается, что у вас есть базовые знания о шестнадцатеричном редактировании и тому подобном. Это НЕ что-то для начинающих, чтобы попробовать! Также обратите внимание, что это не универсальный учебник, а скорее общее руководство по выполнению того, что мы хотим. Существует несколько проб и ошибок, связанных с различными приложениями и методами обнаружения / взлома root, используемыми разработчиками приложений!
Связанные руководства Appual:
- Как декомпилировать и тематические Android APK
- Как вручную оформить тему Android System UI
Требования:
- Инструменты ADB на вашем ПК (см. Руководство по применению «Как установить ADB в Windows»)
- Декомпилятор APK, как APK Easy Tool
Как удалить Root Detection из APK
Начните с декомпиляции APK (прочитайте руководство Appual по декомпиляции APK, если вы никогда не делали этого раньше).
Теперь ищите в структуре папок APK любой контейнер, содержащий термины «superuser», «supersu» или «root». Например, вы найдете что-то вроде:
smali_classes2 \ ком \ RSA \ mobilesdk \ SDK \RootedDeviceChecker.smali
Теперь откройте соответствующий файл .smali в редакторе кода, таком как Notepad ++, и измените записи const-string с любыми APK или каталогами, относящимися к корню, на что-то, чего не существует.
Теперь перекомпилируйте и подпишите приложение (установите флажок «Подписать APK после компиляции») и все!
Как удалить обнаружение взлома из APK
После выполнения описанных выше шагов некоторые приложения могут иметь встроенные средства обнаружения и изменения APK, особенно банковские приложения. Для этого нам нужно снять защиту от несанкционированного доступа, и это не на 100% надежно.
Если вы запустите приложение и получите сообщение типа «Приложение, похоже, было изменено или повреждено», запишите это точное сообщение.
Теперь найдите файл основных строк (обычно это «res \ values \ strings.xml») для сообщения, которое было отображено.
Запишите имя строки, например, «tamper_block_message_default», и найдите его в файле public.xml, который обычно находится в той же папке, что и файл strings.xml.
Запишите шестнадцатеричный идентификатор и найдите в APK шестнадцатеричную строку. В приложении, с которым мы тестируем этот метод, он был найден в smali_classes2 / com / usaa / mobile / android / app / core / protection / TamperActions.smali
Откройте соответствующий файл .smali в Notepad ++ (или аналогичном редакторе кода) и найдите строку, содержащую шестнадцатеричный идентификатор. Это линия / секция, которая запускает защиту от взлома.
Здесь мы хотим прокрутить эту строку вверх, пока не найдем, в чем она находится, например, в операторе if = или в блоке try.
Это может потребовать проб и ошибок, но вы хотите, чтобы проблемный блок никогда не выполнялся. Так, например, если строка была размещена в операторе if =, и защита от несанкционированного доступа срабатывает, когда для v0 установлено значение, отличное от 0.
Что мы будем делать в этом случае, чтобы убедиться, что v0 всегда равно 0, например, добавив строку:
const / 4 v0, 0x0
Теперь вы будете перекомпилировать и подписать приложение.