你的想法很重要-大家都来谈 (C)Copyright 2012 by WeiPt

安卓android代码混淆研究

最近研究了一下Android代码的混淆,混淆过程比较简单,这里主要说proguard.cfg的编写。

首先要说明的一点是引用第三方类库的问题,因为这个是不能混淆的,要保持,我引用了JAVAMAIL的方法,排除混淆如下:

-libraryjars b/activation.jar
-libraryjars b/additionnal.jar
-libraryjars b/mail.jar

-keep class javax.mail.**{*;}
-keep class com.sun.mail.**{*;}
-keep class javax.activation.**{*;}
-keep class org.apache.harmony.**{*;}
-keep class java.security.**{*;}

下来比较纠结的事情出现了,我发现混淆之后的代码基本就是改了方法名成a,b,c,d,e,f等等,可以说混淆成功了,也能安装并运行;

但是混淆只是改了这些名字,如果我们仔细分析还是可以分析出程序的流程的,于是就在研究proguad配置文件,研究http://proguard.sourceforge.net

 

把-keep public class * extends android.app.Activity注释了看看,一下居然成功混淆了,代码的逻辑几乎看不出来,字符串也看不清楚,想着这些万事大吉了,

但是当我打包,安装,之后发现程序根本不能运行,直接出现意外错误。

 

很纠结啊,这个(继承的活动类Activity)不能混淆啊,但是不混又达不到保护代码的目的,纠结中。。。

 

posted @ 2012-04-09 10:41  weipt  阅读(1975)  评论(3编辑  收藏  举报

你的想法很重要-大家都来谈 (C)Copyright 2012 by WeiPt