美文网首页week.io
android的代码混淆与反编译

android的代码混淆与反编译

作者: 小呀么小黄鸡 | 来源:发表于2015-11-13 17:16 被阅读541次

以下适用场景:eclipse中的maven项目

为什么将这两个问题放在一起讲?

因为反编译才能将代码混淆的效果直接展现。

这两个问题网络上的参考资料很多,我的这一份也就是从这么多资料中遴选出对我帮助较大的一些,并记录当前的解决进度,分享给大家。

参考资料及所需工具:

代码混淆——

1.Eclipse+ADT进行Android应用程序的代码混淆和签名

讲述了如何启动代码混淆功能:在project.properties中添加

proguard.config=proguard.cfg

及生成签名发布apk(附图)


2.混淆打包及出错信息的解决方法       

讲述了可能出现的问题:

例1(由于混淆找不到所需的类):Warning: com.baidu.frontia.api.FrontiaPush$a$1: 

can't find superclass orinterfacecom.baidu.frontia.module.push.

FrontiaPushListenerImpl$CommonMessageListenerImpl

解决(将所需的类排除):添加

-dontwarn com.baidu.**

-keep class com.baidu.** { *; }

例2(依赖的文件被混淆):Warning: libraryclassandroid.graphics.drawable.

NinePatchDrawable depends on programclassorg.xmlpull.v1.XmlPullParser

解决(将依赖文件排除):在proguard.cfg中添加

-dontwarn org.xmlpull.v1.**

-keep class org.xmlpull.v1.** { *; }

提供了proguard.cfg文件的示例


3.Unable to execute dex: GC overhead limit exceeded

解决的一个问题 在export的最后一步可能出现 需要修改eclipse.ini

添加

-vm

C:\Program Files\Java\jdk1.7.0_21\bin\javaw.exe

-Xms40m   

-Xmx512m           

修改为

-Xms256m

-Xmx1024m


4.android混淆代码总结                     

总结及另一份proguard.cfg文件示例


5.android 通过eclipse混淆代码 打包 + proguard 总结

对proguard.cfg文件中可能用到的内容的参数描述及配置选项


反编译——

Android APK反编译详解(附图) 

过程简述:将apk文件后缀改为zip并解压,得到其中的classes.dex,将classes.dex复制到dex2jar.bat所在文件夹,在命令行下定位到dex2jar.bat所在目录,运行

dex2jar.bat classes.dex

生成classes_dex2jar.jar

然后,进入jdgui,打开上面生成的jar包classes_dex2jar.jar,即可看到源代码

工具下载

JD-GUI(Java反编译工具)                                           

反编译工具包(包含Androidfby、apktool、dex2jar)           

dex2jar官网下载(没有试过)                                           

jdgui官网下载(没有试过)                                                                                                   

相关文章

  • Android的多渠道打包|SquirrelNote

    系列文章:Android的反编译和代码混淆Android的打包签名[Android的多渠道打包 前言 本篇包括以下...

  • Android的反编译和代码混淆

    系列文章:Android的反编译和代码混淆Android的打包签名Android的多渠道打包 前言 包括以下内容 ...

  • Android的打包签名

    系列文章:Android的反编译和代码混淆Android的打包签名Android的多渠道打包 前言 从以下几个方面...

  • 全面解析:Android开发中的Proguard混淆配置

    为什么要进行代码混淆?   混淆在我们实际的Android开发中是必不可少的,如果不混淆, 发布出去,别人一反编译...

  • android的代码混淆与反编译

    以下适用场景:eclipse中的maven项目 为什么将这两个问题放在一起讲?因为反编译才能将代码混淆的效果直接展...

  • Android开发安全手册

    常规安全防御手段 混淆 混淆是Android基本安全手段,虽然目前有很多工具能够反混淆,但是对于反编译调试代码还是...

  • Android如何进行混淆

    android开发为什么要进相混淆? Android开发使用Java作为开发语言,Java代码是非常容易反编译的。...

  • Android Apk 反编译与混淆

    Android Apk 反编译与混淆 反编译工具 目前反编译工具有四类 1、apktool 主要用于资源文件的获取...

  • android之代码混淆

    项目发布之前混淆是必不可少的工作,混淆可以增加别人反编译阅读代码的难度,还可以缩小APK包。 Android 中通...

  • Android-混淆学习

    混淆的作用 Java代码是很容易反编译的,而Android是使用Java开发的,也容易被反编译出来。一般来说,通过...

网友评论

    本文标题:android的代码混淆与反编译

    本文链接:https://www.haomeiwen.com/subject/tbxkhttx.html