Что мы уже пробовали
Базовые конфигурации сборки 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")
Пожалуйста, помогите, как использовать Tigeress и обфускатор OLLVM?
Меня интересуют рекомендации по:
- Как правильно запутывать собственный код C++ в приложении Android?
- Любые лучшие практики или реальные примеры защитить нативный код от обратного проектирования и перехвата?
- Как совместить обфускацию с методами защиты от отладки и перехвата?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ction-logi
Мобильная версия