您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > Android 2.2工程混淆代码并反编译查看解决方案
Android2.2工程混淆代码解决步骤一、首先因为Android2.2是没有proguard.cfg文件的,所以我们要先创建一个Android2.3.3或者是以上版本的工程二、创建成功后查找SDk路径下tools文件夹中lib文件夹下如:E:\information\android-sdk-windows\tools\lib下就会有proguard.cfg文件该文件源码-optimizationpasses5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-verbose-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*-keeppublicclass*extendsandroid.app.Activity-keeppublicclass*extendsandroid.app.Application-keeppublicclass*extendsandroid.app.Service-keeppublicclass*extendsandroid.content.BroadcastReceiver-keeppublicclass*extendsandroid.content.ContentProvider-keeppublicclass*extendsandroid.app.backup.BackupAgentHelper-keeppublicclass*extendsandroid.preference.Preference-keeppublicclasscom.android.vending.licensing.ILicensingService-keepclasseswithmembernamesclass*{nativemethods;}-keepclasseswithmembersclass*{publicinit(android.content.Context,android.util.AttributeSet);}-keepclasseswithmembersclass*{publicinit(android.content.Context,android.util.AttributeSet,int);}-keepclassmembersclass*extendsandroid.app.Activity{publicvoid*(android.view.View);}-keepclassmembersenum*{publicstatic**[]values();publicstatic**valueOf(java.lang.String);}-keepclass*implementsandroid.os.Parcelable{publicstaticfinalandroid.os.Parcelable$Creator*;}三、把该文件拷贝到要打包的工程下(和)proguard-project.txt一个路径下四、修改proguard.cfg文件内容为:(红色标记与源代码不同)把dontpreverify改成dontwarn并加了引入包android-support-v4.jar的路径-dontwarn-optimizationpasses5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-ignorewarnings-dontwarn-verbose-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*-keeppublicclass*extendsandroid.app.Activity-keeppublicclass*extendsandroid.app.Application-keeppublicclass*extendsandroid.app.Service-keeppublicclass*extendsandroid.content.BroadcastReceiver-keeppublicclass*extendsandroid.content.ContentProvider-keeppublicclass*extendsandroid.app.backup.BackupAgentHelper-keeppublicclass*extendsandroid.preference.Preference-keeppublicclasscom.android.vending.licensing.ILicensingService-libraryjarslibs/android-support-v4.jar-dontwarnandroid.support.v4.**-keepclassandroid.support.v4.**{*;}-keepinterfaceandroid.support.v4.app.**{*;}-keeppublicclass*extendsandroid.support.v4.**-keeppublicclass*extendsandroid.app.Fragment-keepclasseswithmembernamesclass*{nativemethods;}-keepclasseswithmembersclass*{publicinit(android.content.Context,android.util.AttributeSet);1、}2、3、-keepclasseswithmembersclass*{4、publicinit(android.content.Context,android.util.AttributeSet,int);5、}6、7、-keepclassmembersclass*extendsandroid.app.Activity{8、publicvoid*(android.view.View);9、}10、11、-keepclassmembersenum*{12、publicstatic**[]values();13、publicstatic**valueOf(java.lang.String);14、}15、16、-keepclass*implementsandroid.os.Parcelable{17、publicstaticfinalandroid.os.Parcelable$Creator*;18、}五、在project.properties中加入proguard.config=proguard.cfg以上五个步骤就可以完成代码混淆了接下来我们来反编译看下代码是否真的混淆了六、首先我们先把工程打包,看看是不是可以了不报错了,签名簿签名都ok七、用解压工具解压打包的.apk得到classes.dex文件;直接用你机器上的解压软件打开.apk文件解压出classes.dex文件,(这个就是.jar的前生---其实应该说后世)八、还原.jar文件;这一步需要用到一个工具dex2jar(百度搜索即可下载)看名字也不难知道他是干嘛的了吧?(没错,就是把dex还原成jar包)下载完了,解压,然后把第一步的产物(即那个classes.dex文件)放到dex2jar的解压目录里(解压目录里有dex2jar.bat文件,检查一下,没有的话说明目录不对、再找找)九、cmd命令行,目录切换到dex2jar的目录下(linux系统的话执行那个.sh文件)“dex2jar.batclasses.dex”看到命令行的“Done”之后,dex2jar文件夹里就会有“classes.dex.dex2jar.jar”文件了,这个就是传说中的jar包了十、查看.jar文件;这一步就是传统的反编译了,需要工具辅助,我这里用到的工具是jd-gui(百度搜索)下载你的系统对应的版本,解压,(我xp系统)你会看到一个.exe文件,没错就是单文件绿色版双击,选择第二步生成的.jar,好吧,你的项目是不是完全还原了呢?十一、反编译结果然后用上面的方法反编译你的项目,你会看到aabbcc的包、aabbcc的类和aabbcc的变量名,方法名.这个我相信你自己也搞的头昏了吧?这样就知道自己的工程是不是已经混淆成功了。
本文标题:Android 2.2工程混淆代码并反编译查看解决方案
链接地址:https://www.777doc.com/doc-3301748 .html