如何检查Dalvik缓存是否被修改

3

有一些工具可以修改应用程序的Dalvik缓存以去除拷贝保护 - 是否有一种检查dalvik缓存的方法?

它只是复制了DEX文件吗?如果是,它是否仍具有相同的校验和?非root应用程序是否实际上能够获取校验和?

2个回答

4
在dalvik缓存中的文件不是原始dex文件,而是odex(优化dex)文件。当一个应用程序被安装时,其dex文件被提取,然后dalvik对其运行优化处理并将结果存储在dalvik缓存中。
dalvik缓存目录的目录权限阻止非系统应用程序列出目录内容,但是执行权限被设置,并且odex文件本身是全局可读的,因此如果应用程序知道文件名,它就可以访问它们。
但是,检查odex文件的完整性可能很困难,因为它们在每个设备上可能是不同的。因此,您无法进行简单的校验和检查。
我想你需要深入比较dex文件结构,并将其与原始dex文件进行比较。如果您想确保真实性,您需要先取消odex文件的优化,然后将结果与原始dex文件进行比较。

1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接