Unity3D修改classes.jar(dex2jar使用)

时间:2022-04-11 15:21:10

本文源链接:http://blog.csdn.net/qq393830887/article/details/56492145

工具

开始

目录结构

Unity3D修改classes.jar(dex2jar使用)
- Unity里面有分il2cpp、mono,还有分Development、Release,找到自己用于测试的路径,不要搞错了
- Unity为什么会有classes.dex又有classes.jar,真是神奇
- 不管怎样,也备份一下上面那2个文件,以防手残

jar2dex

Unity3D修改classes.jar(dex2jar使用)

Unity3D修改classes.jar(dex2jar使用)
- 对比生成的dex,还是有些区别的,不过有什么区别不好判断,接下来反编译dex再看

baksmali

Unity3D修改classes.jar(dex2jar使用)
- 对比刚刚2个dex,发现有区别,但是还是看不懂,继续往下
Unity3D修改classes.jar(dex2jar使用)
- 修改这个位置,具体参考 Unity半屏输入
- 这里和那篇文章提到的不一样,这里看到的是十进制的,计算器算一下罗

smali

Unity3D修改classes.jar(dex2jar使用)
- 这下好了,3个dex都看不出来区别了

dex2jar

Unity3D修改classes.jar(dex2jar使用)

Unity3D修改classes.jar(dex2jar使用)

Unity3D修改classes.jar(dex2jar使用)
- 这次可以用Java Decompiler来对比生成的jar了
- 看起来就是函数的声明区别比较大
- 感觉用unity的classes.dex比较靠谱,莫非unity就是为了方便我偷偷改

发apk测试

Unity3D修改classes.jar(dex2jar使用)
1. 覆盖classes.jar无效
2. 覆盖classes.dex发现可以实现半屏
3. 说明unity使用的是classes.dex来生成apk,jar只是方便我们需要的时候引用jar

补充

  • IDA可以做简单的修改,修改数值还行,但是涉及到类型,看来得老司机来才行