Android混淆需要了解的知识点

2018-08-28  本文已影响0人  wayDevelop

混淆介绍

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

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

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

ProGuard常用操作

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

 -dontoptimize  #关闭优化
 -optimizationpasses n  #表示proguard对代码进行迭代优化的次数,Android一般为5
  -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{*;}

参考文档

上一篇 下一篇

猜你喜欢

热点阅读