Приложение, над которым я работаю на работе, недавно было проверено пером. Один из рисков, который вернулся в отчете, заключался в том, что в нем не было надлежащего обнаружения хуков. Я реализовал библиотеку RootBeer, но этого было легко избежать.
Тестер Frida создал приложение для Android для изменения логики обнаружения корней во время выполнения. Скрипт подключен к методу System.exit, чтобы вернуть false вместо true. Это предотвратило выход из приложения после того, как приложение обнаружило, что устройство было рутировано.
Было рекомендовано тестерами пера, чтобы мы провели как можно больше различных проверок, чтобы удержать реверс-инженеров.
Одна из таких проверок - заставить приложение Android сканировать собственный файл карты памяти, расположенный по адресу
/proc/<pid>/maps
, где
<pid>
- это идентификатор процесса приложения (PID).
Я проверил документацию по Android и могу найти только информацию об обработке памяти, но ничего при сканировании памяти. например. https://developer.android.com/topic/performance/memory
Я вижу, что вы можете "получить объект MemoryInfo для текущего состояния памяти устройства". Но это показывает только доступную память в системе.
У кого-нибудь есть решение этой проблемы?