所以有一些工具可以修补App的Dalvik缓存来删除复制保护 - 实际上是否有办法检查dalvik缓存?
是否只是复制的DEX文件,如果是,它是否仍然具有相同的校验和?非root应用程序是否有可能获得校验和?
答案 0 :(得分:4)
dalvik缓存中的文件不是原始的dex文件 - 它们是odex(优化的dex)文件。安装应用程序时,将解压缩其dex文件,然后dalvik在其上运行优化传递并将结果存储在dalvik缓存中。
dalvik缓存目录上的目录权限阻止非系统应用程序列出目录内容,但是设置了执行权限并且odex文件本身是世界可读的,因此如果应用程序知道其文件名,则可以访问它们
但是,检查odex文件的完整性会很困难,因为它们在每个设备上可能都不同。所以你将无法进行简单的校验和检查。
我想你必须对dex文件结构进行深入比较,并将它们与原始dex文件进行比较。如果你想确定,首先需要对odex文件进行去索引,然后将结果与原始dex文件进行比较。
答案 1 :(得分:1)
我认为您可以调用dexopt
进程(直接在设备中)并将新生成的dex与dalvik缓存中的dex进行比较,当然如果您的缓存dex被修改,则更改可以禁用检查本身。幸运补丁的作者建议从资产中加载外部代码然后执行到位,但这并不容易且100%有效