3

所以有一些工具可以修补应用程序的 Dalvik 缓存以删除复制保护 - 实际上有一种检查 dalvik 缓存的方法吗?

是否只是复制的 DEX 文件,如果是,它是否仍然具有相同的校验和?非root应用程序是否真的有可能获得校验和?

4

2 回答 2

4

dalvik 缓存中的文件不是原始的 dex 文件 - 它们是 odex(优化的 dex)文件。安装应用程序时,会提取其 dex 文件,然后 dalvik 对其运行优化过程并将结果存储在 dalvik 缓存中。

dalvik 缓存目录的目录权限阻止非系统应用程序列出目录内容,但设置了执行权限并且 odex 文件本身是世界可读的,因此如果应用程序知道它们的文件名,则可以访问它们。

但是,很难检查 odex 文件的完整性,因为它们在每台设备上都可能不同。因此,您将无法进行简单的校验和检查。

我想您必须对 dex 文件结构进行深入比较,并将它们与原始 dex 文件进行比较。如果您想真正确定,您需要先对 odex 文件进行 de-odex,然后将结果与原始 dex 文件进行比较。

于 2012-04-01T17:10:26.750 回答
1

我认为您可以调用dexoptprocess(直接在设备中)并将新生成的 dex 与 dalvik 缓存中的 dex 进行比较,当然,如果您的缓存 dex 被修改,则更改可以禁用检查本身。lucky patcher 的作者建议从 assets 加载外部代码,然后就地执行,但这并不容易且 100% 有效

于 2012-12-02T05:15:31.723 回答