techparty归来,谈谈Android代码安全
周末去听了一场珠三角技术沙龙2010Q4 techparty,本来是想写写陈硕老师的《分布式系统:一种工程方法》感想的,但是功力还不够,先略过不谈,免得被人笑话。 不过正巧,对于闻波老师的《android应用开发杂谈》,我却颇有感触。
是什么让我产生反编译的念头?
前段时间,刚好有个想法,想开发个Android应用,其中设想有个功能,用Java实现解压缩,但是由于我菜,这么复杂的算法,不可能自己去开发。刚好我手机上装了个ACV的软件,里面有从SD card读取zip或rar包进行解压的功能,于是,萌生念头,反编译之。
反编译工具
经过一轮的Google,找到了不少方法,当然有其中闻波老师提到的apktool,但是反编译出来的结果,只是一行一行的Java指令,如果Java不是很熟悉的话(like me),没办法看呀。
反复折腾,终于找到了强大的组合dex2jar+jdgui。
三步教你apk反编译
0.准备java环境和反编译工具(dex2jar, jd-gui),下载你准备反编译的apk文件;
1.用解压缩软件打开apk文件,把里面的文件解压到一个目录;
2.运行dex2jar进行反编译;
3.打开jd-gui,把反编译出来的jar拖进去就可以看到java源代码了。

声明:反编译仅供学习之用,请勿作恶。
如何防止自己的apk被反编译
当然是代码加密或者代码混淆了。
相应的工具有:ant, proguard
方法各式各样,这个要发挥自己的想象力和创造力了。
附上techparty的演讲PPT:
分布式系统:一种工程方法
android应用开发杂谈




