Android jar包的混淆

作者: 废柴傻狗 | 来源:发表于2016-05-18 17:58 被阅读628次

所有的App都在CPU上裸奔。

既然机器能跑,那么机器就能识别这些代码,混淆的意义是为了不让别人识别,因为代码中的内容可能是我们不想给别人看的。

jar包里的内容只要丢到JD-GUI里就可以清楚的看到。


未混淆的代码.png 已混淆的代码.png

经过混淆后变量的名称都发生了变化,一般人看不懂它的具体含义,也就给看懂代码逻辑带来了困难。这里介绍一个工具:Proguard
这个工具在window和mac下都有,可以方便的混淆Android代码。


设置输入输出和依赖.png

1.首先 Add input 选中想要混淆的jar包,然后Add output 选中输出的位置。
2.然后在下面一栏中Add...选中将要依赖库、包等等。
我依赖的文件如下,可以用来参考:

  • Android Sdk:
    /Users/pro/Development/adt-bundle-mac-x86_64-20131030/sdk/platforms/android-19/android.jar
  • 它工程本身的libs目录
    /Users/pro/Documents/kunlun/April26SuspendWindow/DongGeDemo/kunlun_fbsdk/libs
  • 它依赖的工程的libs目录
    /Users/pro/Documents/kunlun/April26SuspendWindow/Facebook-sdk-4.10/libs

3.在Shrinking中可以选择不想混淆的部分,因为有些内容混淆后就会报错,比如jni或者javabean或者某些特殊的类,在这里我们设置的不混淆Library,不混淆枚举类,可序列化代码,Bean类。最下面还可以具体添加某些不想混淆的部分。

选择不想混淆的部分.png

4.接下来一路Next+Process,如果没有什么异常就成功了。如果此次的配置以后会经常使用,可以点击Save Configuration保存这次配置,下次就可以直接调用了,十分方便。

混淆成功结果.png

相关文章

  • Android里混淆jar包

    Android里,使用Ellispe混淆jar包的时候,如果jar包里没有访问资源文件的代码,那么直接配置prog...

  • Android jar包的混淆

    所有的App都在CPU上裸奔。 既然机器能跑,那么机器就能识别这些代码,混淆的意义是为了不让别人识别,因为代码中的...

  • Android Studio开启混淆

    使用Android Stduio开启混淆本篇主要介绍在Studio中lib库中jar包的混淆和phone中对apk...

  • jar包混淆

    生成混淆的jar包需要在module的build.gradle文件中添加以下两个脚本函数,最后运行对应的gradl...

  • Android导出Jar包并混淆

    Android Studio导出apk并混淆很容易,但是我们如果做SDK开发的话,只能提供给客户jar包,为了不透...

  • Android Studio生成混淆jar包

    将module生成jar,其内部必须只能是java代码。如果还有resource文件,那就得打aar文件了。 在你...

  • Android:jar包的混淆以及多个jar包的融合

    前言萌新进入职场也有一段时间了,发现同学们开始写博客记录学到的东西,所以决定也写写博客记录自己刚开始工作时学到的一...

  • 事件分发库-EventBus

    github 准备 下载jar包 eventbus-3.1.1.jar 混淆 http://greenrobot....

  • android eclipse 项目打成jar包及jar混淆

    项目前段时间要抽取核心功能做成sdk版本,有jar包和apk。牵扯到将项目打包成jar和jar混淆2部分 在ecl...

  • Android Studio打Jar包方式(可混淆)

    一、普通生成Jar包 二、 普通生成Jar包自定义类名jar生成方式,可以去除资源 三、混淆后的jar生成方式,可...

网友评论

    本文标题:Android jar包的混淆

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