Как проверить, был ли изменен Dalvik Cache - PullRequest
3 голосов
/ 01 апреля 2012

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

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

Ответы [ 2 ]

4 голосов
/ 01 апреля 2012

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

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

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

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

1 голос
/ 02 декабря 2012

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

...