2012-04-01 5 views
3

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

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

ответ

4

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

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

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

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

+0

Спасибо за понимание :) – Force

1

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