本经验总结针对Android 4.0(sdk 14 ) 以上:
一般项目做好以后,大部分公司为了安全会进行代码混淆来增加安全性,防止反编译和破解!
google Android 给我们提供了proguard 进行代码混淆,废话不多说,我刚刚接触的时候,感觉特别高深!感觉无从下手啊,于是就度娘了一下,各种帖子,各种方法!
要想学会还得自己试试看!
要学习,混淆我觉得我们还是先学学反编译吧,要不自己又看不到是否混编了,有没有效果
首先下载反编译工具:
dex2jar 反编译工具包点击打开链接
然后开始我们的反编之旅吧!
反编
反编第一步,我们准备一个简单的打包文件这里我们直接新建一个HelloWorld项目然后在代码里增加一些代码内容如下:
导出apk文件:Helloworld.apk 然后修改扩展名Helloworld.rar 通过winrar解压缩我们看到
将dex文件复制到dex2jar文件夹下,开始反编译命令如下:
然后通过jd-jui工具打开查看生成的classes_dex2jar.jar包,我们震惊了!
我们的代码被一字不落的反编译了!
至此,我们反编译成功了!当然,这里只是反编一个我们自己的apk,如果我们打开应用市场上的apk 譬如说QQ的,我们来试试看吧!
一看晕菜了,三个dex文件,那么我们一个一个来反编译看看吧看会有什么结果:
随便打开一个看看,虽然大部分可以看到类名,但是当你打开的时候发现很多方法名字都变化了变成了abcd!对这就是对代码进行了混淆,虽然我们也反编译了,但是完全看不懂!
还有其他两个dex,我们可以自己尝试反编下看看,至于多个dex的问题我觉得是应用过大而做的处理!大家可以搜索学习!我们这里先学习下反编译技能用来后面章节混淆的验证!
反编译结束!