Запутывание собственного кода в приложении Android, реализация логики обнаружения root [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Запутывание собственного кода в приложении Android, реализация логики обнаружения root [закрыто]

Сообщение Anonymous »

Мы столкнулись с проблемой обхода обнаружения root в нашем приложении для Android, и мне нужна помощь в запутывании собственного кода, чтобы злоумышленникам было сложнее перехватить или изменить нашу логику.
Что мы уже пробовали
Базовые конфигурации сборки Android:
minifyEnabled true

shrinkResources true
Библиотека обнаружения root:
Интегрированный Telsec для обнаружения root.
Логика уничтожения приложений:
Изначально реализовано на Java/Kotlin, но команде VAPT удалось обойти ее. Логика обнаружения корневого доступа и уничтожения приложений перенесена в собственный код C++.
Выводы VAPT
Несмотря на перенос логики в собственный код, команде VAPT удалось обойти ее с помощью таких инструментов, как:
JADX

Ghidra

Frida
Они успешно установили приложение на устройства с root-доступом. Что мы должны остановить.
Попытка обфускации собственного кода
Мы попытались добавить в CMakeLists.txt следующие флаги:

Код: Выделить всё

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mllvm -fla -mllvm -bcf -mllvm -sub -s -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s -mllvm -sub -mllvm -bcf -mllvm -fla")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions -fvisibility=hidden -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fno-rtti -fno-exceptions -fvisibility=hidden -s -mllvm -sub -mllvm -bcf -mllvm -fla")

set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--strip-all")
Но код по-прежнему доступен для чтения и изменения. Команда VAPT рекомендовала использовать Tigress или OLLVM, но мы не знаем, как эффективно интегрировать или использовать эти инструменты.
Пожалуйста, помогите, как использовать Tigeress и обфускатор OLLVM?
Меня интересуют рекомендации по:
  • Как правильно запутывать собственный код C++ в приложении Android?
  • Любые лучшие практики или реальные примеры защитить нативный код от обратного проектирования и перехвата?
  • Как совместить обфускацию с методами защиты от отладки и перехвата?


Подробнее здесь: https://stackoverflow.com/questions/798 ... ction-logi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»