Android APK及导出JAR包的代码混淆


Android开发基于java语言的,很容易被别人反编译出来,一下就相当于裸奔了,特别是用于商业用途的时候,防止反编译是必要的措施。而代码混淆是一种很好防止反编译的方式。

 

1、APK的代码混淆。

 

eclipse的开发环境下,使用android SDK 自带的proguard混淆工具。

主要用到红线框中的两个文件。

 Android APK及导出JAR包的代码混淆

 

project.properties文件中,要指定混淆的文件。如图:

 

 Android APK及导出JAR包的代码混淆

 

然后,详细的proguard-project.txt的写法如下:

-dontwarn 是让指定包名不提示警告

-libraryjars 是指明导入第三方包,不参加混淆

 

 Android APK及导出JAR包的代码混淆

 

再看看我导入的第三方包:

 

 Android APK及导出JAR包的代码混淆

 

 

好了,这些准备工作都OK,那就开始导出APK了。注意平时调试的时候是不会进行代码混淆的,切记不要直接COPY /bin目录下APK发布出去哦。导出APK的具体流程:

 

右键 ——> Export ------>  

 

 Android APK及导出JAR包的代码混淆

 

我用的现在的一个keystore,当然你也可以新建一个,这个很容易的。

 Android APK及导出JAR包的代码混淆

 

Android APK及导出JAR包的代码混淆

再输入一个alias的密码

 

 Android APK及导出JAR包的代码混淆


Android APK及导出JAR包的代码混淆

 

选择好APK存储的目标目录,点击Finish,就可以在指定的目录下看到APK了。

但是如果你那个proguard-project.txt配置没有写好的话,如下:(有把一句屏蔽掉了)

 Android APK及导出JAR包的代码混淆

 

当点击Finish的时候,就会出现下来这种报错:

 Android APK及导出JAR包的代码混淆

 Android APK及导出JAR包的代码混淆

 


OK了之后,你可以看看,混淆之前和之后异同:

 Android APK及导出JAR包的代码混淆

 

 Android APK及导出JAR包的代码混淆

 

 


 

2、Android工程导出JAR包的混淆。

我是参照:http://www.cnblogs.com/rayray/p/3421028.html

 

其实,还是用Android SDK 里自带的Proguard,位于目录android-sdk-windows\tools\proguard\bin下面proguardgui.bat。双击即可开始,

 

 Android APK及导出JAR包的代码混淆

 

可以加载已经存在的配置文件,也可以点击Next,新建一个。

 

 Android APK及导出JAR包的代码混淆

 

 Android APK及导出JAR包的代码混淆

 Android APK及导出JAR包的代码混淆

 

 Android APK及导出JAR包的代码混淆

 

 Android APK及导出JAR包的代码混淆

 Android APK及导出JAR包的代码混淆



 Android APK及导出JAR包的代码混淆

 

完成混淆!如果这时候它报错的话,可以先将这些配置文件保存下来,直接修改文件就可以了。

 Android APK及导出JAR包的代码混淆


然后,我们可以看看混淆之前和混淆之后的效果。

 

 Android APK及导出JAR包的代码混淆

 

 Android APK及导出JAR包的代码混淆

 



Word文档可以直接下载下来保存:http://download.csdn.net/detail/yanyuanfen2011/7593991



Android APK及导出JAR包的代码混淆,布布扣,bubuko.com

Android APK及导出JAR包的代码混淆

上一篇:Root exploit for Android and Linux(CVE-2010-4258)


下一篇:Android ListView动画特效实现原理及源码