所以有一些工具可以修补应用程序的 Dalvik 缓存以删除复制保护 - 实际上有一种检查 dalvik 缓存的方法吗?
是否只是复制的 DEX 文件,如果是,它是否仍然具有相同的校验和?非root应用程序是否真的有可能获得校验和?
所以有一些工具可以修补应用程序的 Dalvik 缓存以删除复制保护 - 实际上有一种检查 dalvik 缓存的方法吗?
是否只是复制的 DEX 文件,如果是,它是否仍然具有相同的校验和?非root应用程序是否真的有可能获得校验和?
dalvik 缓存中的文件不是原始的 dex 文件 - 它们是 odex(优化的 dex)文件。安装应用程序时,会提取其 dex 文件,然后 dalvik 对其运行优化过程并将结果存储在 dalvik 缓存中。
dalvik 缓存目录的目录权限阻止非系统应用程序列出目录内容,但设置了执行权限并且 odex 文件本身是世界可读的,因此如果应用程序知道它们的文件名,则可以访问它们。
但是,很难检查 odex 文件的完整性,因为它们在每台设备上都可能不同。因此,您将无法进行简单的校验和检查。
我想您必须对 dex 文件结构进行深入比较,并将它们与原始 dex 文件进行比较。如果您想真正确定,您需要先对 odex 文件进行 de-odex,然后将结果与原始 dex 文件进行比较。
我认为您可以调用dexopt
process(直接在设备中)并将新生成的 dex 与 dalvik 缓存中的 dex 进行比较,当然,如果您的缓存 dex 被修改,则更改可以禁用检查本身。lucky patcher 的作者建议从 assets 加载外部代码,然后就地执行,但这并不容易且 100% 有效