当前位置: 首页 > news >正文

网站建设内链建程网会员

网站建设内链,建程网会员,广州搬家公司,品牌网站建设黑白I狼J1.使用背景 ProGuard能够通过压缩、优化、混淆、预检等操作,检测并删除未使用的类,字段,方法和属性,分析和优化字节码,使用简短无意义的名称来重命名类,字段和方法。从而使代码更小、更高效、更难进行逆向工程。 Android代码混淆…

1.使用背景

ProGuard能够通过压缩、优化、混淆、预检等操作,检测并删除未使用的类,字段,方法和属性,分析和优化字节码,使用简短无意义的名称来重命名类,字段和方法。从而使代码更小、更高效、更难进行逆向工程。

Android代码混淆,又称Android混淆,是一种Android APP保护技术,用于保护APP不被破解和逆向分析。

所以在大部分的项目里,基本都会把混淆打开。

Tips:如果开启了混淆,Proguard默认情况下会对所有代码,包括第三方包都进行混淆,可是有些代码或者第三方包是不能混淆的,这就需要我们手动编写混淆规则来保持不能被混淆的部分。例如Gson库,Litepal库,有些东西用到的话,就得去proguard-rules.pro文件里配置一下。

2.开启混淆

需要在app的build.gradle文件里进行配置。

android {......defaultConfig {}buildTypes {release {minifyEnabled true      // 开启代码混淆(必须的哈)zipAlignEnabled true   shrinkResources true   proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}}
  1. minifyEnabled:是否进行代码混淆(开混淆就必须要这个哈)
  2. zipAlignEnabled:是否进行Zip压缩优化(可选)
  3. shrinkResources:是否移除未被使用的资源(可选)
  4. proguardFiles:混淆规则配置文件
  5. proguard-android.txt:AndroidStudio默认自动导入的规则,这个文件位于Android SDK根目录\tools\proguard\proguard-android.txt。这里面是一些比较常规的不能被混淆的代码规则。
  6. proguard-rules.pro:针对自己的项目需要特别定义的混淆规则,它位于项目每个Module的根目录下面,里面的内容需要我们自己编写。

3.Proguard配置规则

即在proguard-rules.pro里进行编写配置。

这儿我就不细说了,因为平时我也用不了那么多,这儿贴一个比较全的链接

Android 代码混淆规则 - 掘金

Tips:

AndroidMainfest中的类不混淆,所以四大组件和Application的子类和Framework层下所有的类默认不会进行混淆。自定义的View默认也不会被混淆;所以像网上贴的很多排除自定义View,或四大组件被混淆的规则在Android Studio中是无需加入的(我目前看来是如此的)

4.字典混淆

我的配置:

# 混淆的压缩比例,0-7
-optimizationpasses 5
# 指定不去忽略非公共的库的类的成员
-dontskipnonpubliclibraryclassmembers
# 指定混淆是采用的算法
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
# 指定外部模糊字典 proguard-chinese.txt 改为混淆文件名,下同
-obfuscationdictionary proguard-1il.txt
# 指定class模糊字典
-classobfuscationdictionary proguard-1il.txt
# 指定package模糊字典
-packageobfuscationdictionary proguard-1il.txt

其实就是指定

  • -obfuscationdictionary dictionary_path:指定外部模糊字典
  • -classobfuscationdictionary dictionary_path:指定class模糊字典
  • -packageobfuscationdictionary dictionary_path:指定package模糊字典

这三个的模糊字典。让你的代码,搞起来特别没得可读性。

这个txt文件怎么生成,你可以自己写个脚本生成,也可以用网上已经写好的。

https://github.com/WrBug/FrenziedProguard/tree/master/proguard-file

下载好文件后,放在和proguard-rules.pro同级的文件目录里面:

我使用的是 proguard-1il.txt,使用后反编译查看,首先是包名:

其次是内容:

可以看到,里面的各种对象,方法,变量名,参数等等都被混淆了,变化非常之大。

5.是否生效

使用反编译工具Jadx查看

GitHub - skylot/jadx: Dex to Java decompiler

http://www.yayakq.cn/news/758255/

相关文章:

  • 无锡网站制作价格有没有手机可以看的网站免费的
  • php玩具公司网站源码滕州市东方建设工程事务有限公司网站
  • wordpress feed源搜索引擎优化培训班
  • 网站建设在哪里找人做 理财网站
  • 婚庆公司网站建设总结wordpress m1主题
  • 网站整体风格设计京东这样的网站是怎么做的
  • 网站开发学什么语言好泉州网站建设网站
  • 泊头哪给做网站的好算命购物网站建设
  • 网站规划建设与管理维护大学论文网络营销策划方案框架
  • 理财网站方案建设WordPress百度收录内容
  • 地方网站系统外贸网站建设商家
  • i网站建设浙江网站建设实验心得
  • 公司官网的作用诊断网站seo现状
  • 网站后台登陆不上去建设旅游网站的总结
  • 东莞工业品网站建设百度推广介绍
  • 网站广告的图片怎么做如何把一个静态网站
  • 网站设计公司市场容量wordpress主题在手机不展示
  • 海曙区建设局网站搜收录批量查询
  • 网站申请湖北联兴建设有限公司网站
  • 网站备案背景墙网站建设中 什么意思
  • 福州做推广有哪些网站国内域名备案
  • 网站开发分析模板网站怎么做精准引流
  • 北京建商城网站互联网营销怎么赚钱
  • 深圳制作网站建设wordpress多合一seo包
  • 重庆网站开发公自己的电脑做服务器搭建网站
  • flash网站尺寸html5 国外网站
  • 公司做网站费用和人员配备网站建设咨询公司
  • 永久免费的网站那些网站是做金融行业
  • 网站点击快速排名福建省城乡建设信息网站
  • 网站改版提示无需改版菏泽建设信息网官网