首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

ProGuard搅混代码学习笔记 之 开启代码混淆

2013-01-17 
ProGuard混淆代码学习笔记 之 开启代码混淆? ? ? 这几天项目需要用到代码混淆来给项目代码提高安全性,由于

ProGuard混淆代码学习笔记 之 开启代码混淆

? ? ? 这几天项目需要用到代码混淆来给项目代码提高安全性,由于项目忙,稍有研究,涉及不深;

略有收获,浅显总结,以备遗忘。

? ? ? 大家都知道,没有经过混淆的APK,加压后,可以直接将APK加压后的 ?classes.dex ?文件反

编译成jar包,然后就可以对其中的关键代码与实现一览无余。

? ? ? 现在来看看,如何将APK反编译出来:

? ? ?1、将APK解压出来,会有一个 classes.dex ?文件

? ? ?2、得到了 clases.dex 文件,将其 还原成 .jar 包,这一步需要用到一个工具 --dex2jar

? ? ? ? ?(谷歌的代码库里有?http://code.google.com/p/dex2jar/)

? ? ? ??将其下载下来,然后解压,解压目录中会有一个 dex2jar.bat

? ? ? ? 将 1 中解压出的classe.dex 拷贝到dex2jar的解压目录中,然后在命令行执行

? ? ? ? "dex2jar.bat classes.dex",之后在解压目录中会看到多出一个名叫“classes.dex.dex2jar.jar”

? ? ? ? 的jar文件

? ? ?3、查看 .jar 文件,这一步就是传统的反编译了,我们需要用到一个辅助工具 :jd-gui? ??

? ? ? ? ?(http://java.decompiler.free.fr/?q=jdgui)

? ? ? ? 下载后,用jd-gui 打开.jar 文件,就能查看到反编译后的代码了

? ? ? ?没有经过混淆的项目,反编译之后的代码和你项目中的代码相差无几了。

? ? ?

?

? ? ? ? 现在来讲讲如何混淆代码:

? ? ? ? 现在看android-sdks\tools目录下,会有一个proguard文件夹

? ? ? ? 这里google已经做了很多,但是是在2.3及其以后的版本。

? ? ? ? 在进入proguard文件夹,会有一个proguard-android.txt文件

? ? ? ? 这个就是google默认的混淆代码的默认配置文件(虽说是默认,但还是需要在android工程中开启)

? ? ? ? 接下来在新建的Android工程目录下 会有 两个配置文件 分别是project.properties 和 proguard-android.txt(注意2.3和4.0以后版本这两个文件名有略微区别),这里就需要在project.properties开启混淆代码设置,看到这句没:

# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):

#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

将下面这句注释取消掉,意思就是执行 ?android-sdks/tools/proguard/proguard-android.txt 和你项目当前目录下得proguard-android.txt文件中的操作。? ? ??

? ? ? ??

? ? ? ?

? ? ? ??

? ??

? ? ?

?

热点排行