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

标签 java android dalvik anti-piracy

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

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

最佳答案

dalvik 缓存中的文件不是原始的 dex 文件——它们是 odex(优化的 dex)文件。当一个应用程序被安装时,它的 dex 文件被提取出来,然后 dalvik 对其运行优化传递并将结果存储在 dalvik 缓存中。

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

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

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

关于java - 如何检查 Dalvik 缓存是否被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9965176/

相关文章:

android - 搜索 查看更改搜索菜单项图像

android - 从图库加载图像时出现空指针异常。

android - Dalvik 文件格式 (*.dx) 是否支持比 Java .class 文件更多的指令?

android - 由于 MOOV 原子相同,无法连接视频

android - DalvikVM 上的 CLI 在 JNI 库上失败

java - 向 smali 源添加代码

java - 当在 GEF 上打开同一文件的不同视角时,如何打开不同的插件

java - Salesforce SOAP 连接命名空间问题

java - jsp和servlet之间通讯错误?

java - Major.minor 不支持的版本 51.0 Java MAC OSX