美文网首页
Android混淆需要了解的知识点

Android混淆需要了解的知识点

作者: wayDevelop | 来源:发表于2018-08-28 17:15 被阅读0次

混淆介绍

使用到:序列化、反序列化、JNI、反射,所以都需要添加混淆过滤代码

Proguard是一个Java类文件压缩器、优化器、混淆器、预校验器。压缩环节会检测以及移除没有用到的类、字段、方法以及属性。优化环节会分析以及优化方法的字节码。混淆环节会用无意义的短变量去重命名类、变量、方法。这些步骤让代码更精简,更高效,也更难被逆向(破解)。

混淆后默认会在工程目录app/build/outputs/mapping/release(debug)下生成一个mapping.txt文件,这就是混淆规则,我们可以根据这个文件把混淆后的代码反推回源本的代码,所以这个文件很重要,注意保护好。原则上,代码混淆后越乱越无规律越好,但有些地方我们是要避免混淆的,否则程序运行就会出错。

ProGuard常用操作

后面有备注Proguard官方文档,其他操作自行查看即可
Proguard官方文档

  • 压缩(Shrinking):默认开启,用以减小应用体积,移除未被使用的类和成员,并且会在优化动作执行之后再次执行(因为优化后可能会再次暴露一些未被使用的类和成员)。
    -dontshrink #关闭压缩

  • 优化(Optimization):默认开启,在字节码级别执行优化,让应用运行的更快。

 -dontoptimize  #关闭优化
 -optimizationpasses n  #表示proguard对代码进行迭代优化的次数,Android一般为5
  • 混淆(Obfuscation):默认开启,增大反编译难度,类和类成员会被随机命名,除非用keep保护。
  -dontobfuscate  #关闭混淆
  • 一颗星表示只是保持该包下的类名,而子包下的类名还是会被混淆;
  -keep class com.thc.test.*
  • 两颗星表示把本包和所含子包下的类名都保持;
 -keep class com.thc.test.** 

(上面两种方式保持类后,会发现类名虽然未混淆,但里面的具体方法和变量命名还是变了)

  • 既可以保持该包下的类名,又可以保持类里面的内容不被混淆;
  -keep class com.thc.test.*{*;}
  • 既可以保持该包及子包下的类名,又可以保持类里面的内容不被混淆;
-keep class com.thc.test.**{*;}
  • 保持某个类名不被混淆(但是内部内容会被混淆)
  -keep class com.xlpay.sqlite.cache.BaseImpl
  • 保持某个类的 类名及内部的所有内容不会混淆
  -keep class com.xlpay.sqlite.cache.BaseImpl{*;}

参考文档

相关文章

  • Android混淆需要了解的知识点

    混淆介绍 使用到:序列化、反序列化、JNI、反射,所以都需要添加混淆过滤代码 Proguard是一个Java类文件...

  • APP签名原理详解

    一、前言 Android 签名。 在说道Android签名之前,我们需要了解的几个知识点 1、数据摘要(数据指纹)...

  • Android 混淆使用入门笔记

    概述 混淆是Android Apk打包过程中的一个重要步骤,默认情况下,打包都是需要混淆过程的。 Android ...

  • Android 混淆知识点

    配置语法

  • ProGuard详解

    Android分享:代码混淆那些事Android代码混淆之混淆规则Android-Dev-Favorites An...

  • 用ProGuard进行代码混淆技术详解

    目前项目android客户端需要代码混淆,抽空了解了下ProGuard的原理及使用,记录下来以备后续使用。 目录 ...

  • 一键搞定Android代码混淆

    简介 基本上Release版本的都是需要混淆的,Android也提供了相关混淆的工具,只不过需要开发者,自己去定义...

  • Android 混淆模版

    参考学习:Android 混淆解析关于proguard,你需要知道的全部

  • Android代码混淆

    待整理。。。 参考: Android混淆从入门到精通 Android代码混淆之混淆规则 代码混淆规则配置文件:pr...

  • Android混淆你了解多少?

    在 Android 日常开发过程中,混淆是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打...

网友评论

      本文标题:Android混淆需要了解的知识点

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