“丧心病狂”的混淆操作!

我们一般发布项目出去都去做混淆的操作,一方面优化一下代码,减少一下Apk体积;另一方面,让自己的源码逻辑不会那么容易被识别出来。

刚巧在wanandroid群里,看到有同学讨论空白混淆的操作,于是搜集了一波比较好玩的混淆词典。

原理很简单,我们混淆是可以配置词典的,所以就当是图个乐了。

我特意找了个开源项目,加一下混淆配置,顺便确定下还能运行…

https://github.com/kingwang66…

网络不好的不如新建个项目体验,对网络自信的,记得删除这个项目里面的一些代理配置,在gradle.properties中。

1 效果

先看一个还算正常的:

“丧心病狂”的混淆操作!

用了Java里面的关键词作为词典,这反编译之后,要是看到for,while就条件反射,可能会懵逼吧。

还有用中文来做词典的:

“丧心病狂”的混淆操作!

不过这里面的字我好想一个不认识,真是尴尬…

还有通过各种字符很容易造成视觉混乱的字符的:

比如这个:

“丧心病狂”的混淆操作!

还有这个:

“丧心病狂”的混淆操作!

最后这个就比较“sangxinbingkuang”了:

“丧心病狂”的混淆操作!

反编译使用的是jadx

http://www.wanandroid.com/blo…

2 操作

开启混淆配置

buildTypes {    debug {        minifyEnabled true        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'    }}

为了方便,你可以直接开启debug的混淆,然后就可以直接点击run打包和安装了。

可以看到上面配置了混淆文件包含: proguard-rules.pro

和moudule的build.gradle在同一目录,在里面可以添加你的词典配置:

“丧心病狂”的混淆操作!

强烈建议,开启混淆后,配置词典前,先打个包运行一下确定可以正常运行。

最后上面的混淆词典,分别来自不同的开源项目:

https://github.com/RockyQu/Pr…

包含使用Java关键词的词典。

https://github.com/o2e/Progua…

包含最后那个全是非常神奇的字符的。

https://github.com/WrBug/Fren…

包含1il,中文,0oO的。

放一个混淆后的apk地址,如果实在懒得run又想看看效果:

http://wanandroid.com/blogimg…

原文出自微信公众号:鸿祥

原文 

https://segmentfault.com/a/1190000018510356

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » “丧心病狂”的混淆操作!

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址