java – 如何检查Dalvik Cache是​​否被修改

所以有一些工具可以修补App的Dalvik缓存来删除复制保护 – 实际上有一种方法可以检查dalvik缓存吗?

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

解决方法:

dalvik缓存中的文件不是原始的dex文件 – 它们是odex(优化的dex)文件.安装应用程序时,将解压缩其dex文件,然后dalvik在其上运行优化传递并将结果存储在dalvik缓存中.

dalvik缓存目录上的目录权限阻止非系统应用程序列出目录内容,但是设置了执行权限并且odex文件本身是全局可读的,因此应用程序可以在知道其文件名时访问它们.

但是,检查odex文件的完整性将很困难,因为它们在每个设备上可能都不同.所以你将无法进行简单的校验和检查.

我想你必须对dex文件结构进行深入比较,并将它们与原始dex文件进行比较.如果你想确定,首先需要对odex文件进行去索引,然后将结果与原始dex文件进行比较.

上一篇:是什么原因导致Android Dalvik java.lang.VerifyError“数组索引的无效注册表类型”?


下一篇:Android 源码分析-Dalvik 虚拟机创建过程