Как проверить, был ли изменен Dalvik Cache

Таким образом, есть некоторые инструменты, которые исправляют кэш Dalvik в приложении, чтобы снять защиту от копирования - есть ли способ проверить кэш dalvik?

Это просто файл DEX, который копируется, и если да, он все еще имеет ту же контрольную сумму? И действительно ли возможно для приложения без полномочий root получить контрольную сумму?

2 ответа

Решение

Файлы в кеше dalvik не являются оригинальными файлами dex - это файлы odex (оптимизированные dex). Когда приложение установлено, его dex-файл извлекается, а затем dalvik запускает на нем этап оптимизации и сохраняет результат в кеше dalvik.

Права доступа к каталогу в каталоге кэша dalvik не позволяют несистемному приложению перечислять содержимое каталога, но разрешение на выполнение установлено, и сами файлы odex доступны для чтения всем пользователям, поэтому приложение может получить к ним доступ, если оно знает их имя файла.

Однако было бы трудно проверить целостность файла odex, потому что они потенциально различны на каждом устройстве. Таким образом, вы не сможете сделать простую проверку контрольной суммы.

Я полагаю, вам нужно было бы сделать глубокое сравнение структур файлов dex и сравнить их с исходным файлом dex. Если вы хотите быть действительно уверенным, вам нужно сначала деодексировать файл odex, а затем сравнить результат с исходным файлом dex.

Я думаю, что вы можете позвонить dexopt обработать (непосредственно в устройстве) и сравнить новый сгенерированный dex с таковым в кеше dalvik. Конечно, если ваш кешированный dex изменен, изменение может отключить саму проверку. Автор lucky patcher предложил загрузить внешний код из ресурсов и затем выполнить на месте, но это будет непросто и эффективно на 100%

Другие вопросы по тегам