2012-04-01 9 views
3

Es gibt also einige Tools, die den Dalvik Cache der App patchen, um den Kopierschutz zu entfernen - gibt es tatsächlich eine Möglichkeit, den Dalvik Cache zu überprüfen?Wie man überprüft, ob der Dalvik Cache geändert wurde

Wird nur die DEX-Datei kopiert, und wenn ja, hat sie immer noch dieselbe Prüfsumme? Und ist es tatsächlich möglich, dass eine Nicht-Root-App die Prüfsumme erhält?

Antwort

4

Die Dateien im Dalvik-Cache sind nicht die Original-Dex-Dateien - sie sind Odex-Dateien (optimierte Dex-Dateien). Wenn eine Anwendung installiert wird, wird ihre Dex-Datei extrahiert, und dann führt dalvik einen Optimierungsdurchlauf durch und speichert das Ergebnis im Dalvik-Cache.

Die Verzeichnisberechtigungen für das dalvik Cache-Verzeichnis verhindern, dass eine Nicht-Systemanwendung den Verzeichnisinhalt auflistet, aber die Ausführungsberechtigung ist gesetzt, und die Odex-Dateien selbst sind für alle lesbar, sodass eine Anwendung auf sie zugreifen kann Name.

Es wäre jedoch schwierig, die Integrität einer Odex-Datei zu überprüfen, da sie auf jedem Gerät möglicherweise unterschiedlich sind. Sie könnten also keine einfache Prüfsummenprüfung durchführen.

Ich denke, Sie müssten einen tiefen Vergleich der Dex-Dateistrukturen, und vergleichen Sie sie mit der ursprünglichen Dex-Datei. Wenn Sie wirklich sicher sein möchten, müssen Sie zuerst die Odex-Datei dekodieren und dann das Ergebnis mit der Original-Dex-Datei vergleichen.

+0

Danke für die Einsicht :) – Force

1

Ich denke, Sie können dexopt Prozess aufrufen (direkt im Gerät) und vergleichen Sie die neu generierte Dex mit der im Dalvik Cache, natürlich, wenn Ihr Cache-Dex geändert wird, kann die Änderung die Prüfung selbst deaktivieren. Der Autor von lucky patcher hat vorgeschlagen, externen Code von Assets zu laden und dann an Ort und Stelle auszuführen, aber das wird nicht einfach und 100% effektiv sein