「喪心病狂」的混淆操做!

咱們通常發佈項目出去都去作混淆的操做,一方面優化一下代碼,減小一下Apk體積;另外一方面,讓本身的源碼邏輯不會那麼容易被識別出來。android

剛巧在wanandroid羣裏,看到有同窗討論空白混淆的操做,因而蒐集了一波比較好玩的混淆詞典。git

原理很簡單,咱們混淆是能夠配置詞典的,因此就當是圖個樂了。github

我特地找了個開源項目,加一下混淆配置,順便肯定下還能運行...微信

https://github.com/kingwang66...網絡

網絡很差的不如新建個項目體驗,對網絡自信的,記得刪除這個項目裏面的一些代理配置,在gradle.properties中。

1效果gradle

先看一個還算正常的:優化

image

用了Java裏面的關鍵詞做爲詞典,這反編譯以後,要是看到for,while就條件反射,可能會懵逼吧。ui

還有用中文來作詞典的:spa

image

不過這裏面的字我好想一個不認識,真是尷尬...debug

還有經過各類字符很容易形成視覺混亂的字符的:

好比這個:

image

還有這個:

image

最後這個就比較「sangxinbingkuang」了:

image

反編譯使用的是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在同一目錄,在裏面能夠添加你的詞典配置:

image

強烈建議,開啓混淆後,配置詞典前,先打個包運行一下肯定能夠正常運行。

最後上面的混淆詞典,分別來自不一樣的開源項目:

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

包含使用Java關鍵詞的詞典。

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

包含最後那個全是很是神奇的字符的。

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

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

放一個混淆後的apk地址,若是實在懶得run又想看看效果:

http://wanandroid.com/blogimg...

原文出自微信公衆號:鴻祥
相關文章
相關標籤/搜索