给这些须要 keep 的内容设置宛转者,然后将宛转者投入大年夜海之中。
好了,终于简单讲完了一些关于混淆的要点,关于混淆其实还有很多小内容,比如可以应用consumerProguardFiles 为一个 library 或 SDK 项目设备混淆文件,如许当某个 app 引用了你这个库,无需再设备相干混淆内容,该 app 就会主动大年夜 consumerProguardFiles 设备的文件中攫取须要进行的 keep 动作,这对于库开辟者是很有效的一个功能。更多就不细说了,文┞仿末尾我会附上我的混淆设备文件片段。
很玄乎吧?哈哈,这么讲有助于记忆。其实和我们在混淆章节说的藏叶于林的思惟是一样的。如不雅一个类不得不 keep,那就把它所做的全部内容都转交给一个 private 或 internal 的类对象去完成,这个宛转类对象代码可以完全混淆,然后你再把这个宛转类经由过程混淆对象藏在大年夜量的代码之中,如许就足够给反编译者带来了很大年夜的麻烦,比拟直接获取逻辑代码,这么做今后要找到实体的逻辑代码将费劲得多。
是以,如不雅你知道有这么一个方法,其实你完全可以不应用饿了么供给的那个 Activity 和 View 混淆对象,也能很好地保护你的 Activity 和 View。
不过一般情况我们无需所有内容都保护,只要把关键、核心内容宛转出去就可以了。
最后的最后,我们还须要做的就是防止反编译者从新打包,全方位绝人之路呀,能做的就是在代码中参加签名验证,并做双向依附。关于此我写过一个类似阿里黑匣子的器械,可以或许在 native 检查签名和加解密内容,后续也有筹划整顿开源,这里暂且就不多说了。
这么做今后,最终 Proguard 会将包含第三方库的所有类文件都移动到你的包名之下,所谓藏叶于林,这时刻那些你未能完全混淆的类也可以藏身在这类文件大年夜海之中,并且这些类文件名都邑被混淆成 abcd 字母组合的名字。
开端之前,值得一说的是,本文跨越五千字,完全由我开辟的「纯纯写作」书写而成,纯纯写作主打安然、写作体验和永不损掉内容,于是本着珍爱生命,我用纯纯写作来写这篇文┞仿。
总之,代码安然和混淆是一个意识加技能的问题,但都不难,控制以上内容就已经十分好了。分享到此停止,如有疑问或问题迎接来信交换。
【编辑推荐】
- 谷歌官方Android应用架构库——LiveData
- 2017年实用于Android & iOS的最佳开源竽暌功用法度榜样
- AgentWeb是基于Android WebView一个功能完美小型浏览器库
- 一篇文┞仿彻底搞懂Android事宜分发机制
- Android进修路上会碰到的各类瓶颈总结
推荐阅读
1.uptime敕令在Linux中,uptime敕令显示了你的体系运行了多久以及今朝登录的用户有若干,别的还显示了距离1分钟、5分钟和15分钟的负载平均值。# uptime08:16:26 up 22min, 1 user,loadave>>>详细阅读
本文标题:Android高级混淆和代码保护技术
地址:http://www.17bianji.com/lsqh/36365.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示