TGViewer
Мобильная разработка Мобильная разработка @mobi_dev · 13.2K subscribers
Post #4715 1.63K
Одна булева проверка на root отключается хуком, но защиту можно собрать иначе

if (isRooted()) blockUser() работает ровно до того момента, когда атакующий находит этот метод. Frida перехватывает вызов и подменяет возвращаемое значение: true становится false, и проверки больше нет.

Альтернатива: не сводить решение к одному флагу. Библиотека DeviceTrust на Kotlin и C++ собирает низкоуровневые сигналы (root, эмулятор, кастомный ROM, разблокированный загрузчик, Frida и Xposed, модифицированный APK) и превращает их в оценку риска.

Сам по себе ни один сигнал ничего не доказывает: телефон рутуют из интереса, эмулятор гоняют для разработки. Смысл появляется, когда несколько признаков сходятся вместе с подозрительным поведением, поэтому оценка нужна как часть антифрод-системы, а не как if на клиенте.

Библиотека в версии 0.1.2, для прода рано. Подход забрать можно уже сейчас.

#android #kotlin
More from @mobi_dev
  1. Sep 20, 2026Как ProfilingManager на Android 15+ помогает искать причины тормозов в продакшене Profilin…
  2. Sep 20, 2026Как использовать свайп-действия вне List в SwiftUI В SwiftUI свайп-действия вроде удаления…
  3. Sep 20, 2026Как переносить сложные Android-экраны на Jetpack Compose: опыт TikTok Команда TikTok перен…
  4. Sep 19, 2026Как управлять кнопками панели инструментов в SwiftUI Одна и та же панель в SwiftUI ведёт с…
  5. Sep 19, 2026Как безопасно освобождать временные ресурсы с defer в Swift В Swift блок defer выполняется…
  6. Sep 19, 2026Как Flutter готовит приложения к новым версиям iOS Между WWDC и стабильным релизом iOS у к…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →