关于Android混淆的开源框架Mess的学习与分析

关于Android混淆知识点的两篇好文章:写给 Android 开发者的混淆使用手册, Android混淆从入门到精通

参考的资料:饿了么全面混淆插件 Messandroid 防破解, 代码混淆,代码保护

Mess是用来解决什么问题的

首先,在之前学过的关于Android混淆知识中我们知道,Android默认是不会混淆四大组件和自定义View的,或者换一个说法,出现在 xml 里的相关 Java 类默认是不会被混淆的。

你不禁会问,为什么Android默认要这么做?

答:因为 Proguard 原本是为 Java 打造的,它无法搜索到我们 AndroidManifest、布局等文件中引用了哪些 Java 类,因此如果 Java 代码变了而 XML 文件中的引用没变,就会造成反射失败,所以android默认这些被 XML 使用到的类需要 keep 住。

关于这一点,我们可以简单的验证一下:

打开build/intermediates/proguard-files/路径下的proguard-android.txt文件,这里面帮我们声明了许多混淆规则内容,包括:keep 所有继承自 View 的类,keep 所有继承自 Activity 的类,keep 所有 JavascriptInterface、native 方法声明,以及 keep 一些注解了 @Keep 的内容,例如:

好,说了这么多,Mess这个插件的目的就是在混淆的时候把这些顽固分子一起收拾了,让你的应用混淆的更彻底,更安全!

Mess的主要构成

Mess的项目地址:https://github.com/eleme/Mess

我把它下载到了本地,其主要一共就四个groovy文件:

                                        

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值