微信資源混淆工具打包

burning_xl發表於2017-07-06

最近研究了下反編譯 ,看到人家apk的資原始檔名字都是類似於abcd這樣的字母,很好奇是怎麼實現的,所以自己上網查了下,利用微信資源混淆工具可以實現,廢話不多說,直接上程式碼.

1、工程project 的build.gradle下新增外掛依賴

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        //混合資源打包
        classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.1.14'

    }
}

2、app的build新增外掛依賴

apply plugin: 'AndResGuard'
andResGuard {
    // mappingFile = file("./resource_mapping.txt")
    mappingFile = null
    // 當你使用v2簽名的時候,7zip壓縮是無法生效的。
    use7zip = true
    useSign = true
    // 開啟這個開關,會keep住所有資源的原始路徑,只混淆資源的名字
    keepRoot = false
    //白名單配置 UM必須配置白名單 否則會提示找不到資原始檔
    whiteList = [
            //for your icon
            "R.drawable.icon",
            //for fabric
            "R.string.com.crashlytics.*",
            //for umeng update
            "R.string.umeng*",
            "R.string.UM*",
            "R.string.tb_*",
            "R.layout.umeng*",
            "R.layout.socialize_share_menu_item",
            "R.layout.tb_*",
            "R.drawable.umeng*",
            "R.drawable.tb_*",
            "R.anim.umeng*",
            "R.color.umeng*",
            "R.color.tb_*",
            "R.style.*UM*",
            "R.style.umeng*",
            "R.id.umeng*",
            "R.id.socialize_image_view",
            "R.id.socialize_text_view",
            //umeng share for sina
            "R.drawable.sina*"
    ]
    compressFilePattern = [
            "*.png",
            "*.jpg",
            "*.jpeg",
            "*.gif",
            "resources.arsc"
    ]
    sevenzip {
        artifact = 'com.tencent.mm:SevenZip:1.2.3'
        //path = "/usr/local/bin/7za"
    }
}

3、找到andresguard外掛目錄
這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

4、由於沒有配置簽名檔案 只能debug

這裡寫圖片描述

下面展示的就是混淆後的包 app-release_signed_7zip_aligned.apk 這個是最小的 一般上線的這個就可以了

5、然後反編譯看一下效果

這裡寫圖片描述

debug下的layout檔案

這裡寫圖片描述

混淆後的

這裡寫圖片描述

6、apk對比效果

這裡寫圖片描述

這只是建立了一個空的工程就小了這些 可想工程大的時候資原始檔的壓縮差不多能到2M 甚至更多

這裡寫圖片描述

這裡寫圖片描述

具體原始碼與使用方法詳細在github中:

https://github.com/shwenzhang/AndResGuard

相關文章