1、前言
目前android整体环境不适很好,盗版现象屡禁不止,虽然我们在打包时会去混淆代码,甚至会去加壳防止盗版。但是二次打包党还是会不断的二次打包,加入广告,重新上传市场。这对我们app在用户间的体验是有很大的影响的。虽然市场可以举报去清除那个盗版app,但是还是会有漏网之鱼,以下是我做过的一个app目前在豌豆荚市场的情况(还是经过举报后的,第一个有“优”的是正版)。
所以这是一场盗版与反盗版之间不断的战争,我们需要了解其中的原理之后,才能更好的防止盗版app对我们的影响。
2、使用工具
Google上最新的工具下载地址:
apktool(获取资源文件)
dex2jar(获取源码)
jd-gui(查看源码)
访问不了的可以在优快云下列地址中进行下载:(MAC OS和Window都有)
3、操作过程
操作环境:Mac OS
1、使用apktool获取资源文件
a、获取drawable下的图片文件:将test.apk后缀改为test.zip,使用解压软件进行解压后在test->res->drawable下的相关文件夹下,也就是说app中的图片是不会进行混淆的,不过有些产品(例如QQ)会对图片名称进行混淆,让你看不出来该图片的具体含义:
b、获取layout下的其他xml文件
将目录切换到apktool目录下,输入以下命令(mac下):
./apktool.bat d -f test.apk test (./apktool.bat d -f [apk文件 ] [输出文件夹])
相关的文件在test目录即可看到
2、使用dex2jar获取源码
将目录切换至dex2jar根目录,使用命令(Mac):./dex2jar.sh classes.dex,会生成一个classes_dex2jar.jar
3、使用jd-gui查看jar源码
将获取到的classes_dex2jar.jar 拖至jd-dui中即可查看该jar中的源码文件