apk資源混淆及壓縮的使用

目的

啟用資源文件res混淆及壓縮的好處:

  1. 增加破解難度紫皇,用無意義的字母替換掉資源文件目錄及名稱,如把res/drawable/wechat變?yōu)閞/d/a殉簸。目前主流大廠的apk打開后蝶怔,資源目錄都是r文件夾,看不到真實(shí)的資源文件名私痹,就是做了資源文件混淆。
  2. 減小打包后的apk體積统刮。

原理

通過resource.arsc文件格式喷市,混淆步驟為:

  1. 解析arsc文件怖亭,主要為全局與資源名字符串池
  2. 修改字符串池中的字符串成洗,以無意義的a/b替換
  3. 修改apk中的res目錄資源文件名
  4. 打包(7zip)印机、對齊、簽名

可選方案

目前的實(shí)施方案有微信資源混淆打包工具AndResGuard美團(tuán)方案
美團(tuán)方案需要自己實(shí)現(xiàn)函數(shù)鞭衩,這里我們使用AndResGuard

AndResGuard使用

1.根目錄build文件中学搜,添加插件的依賴

dependencies {
       classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.17'
    }

2.在主module(默認(rèn)為APP)目錄下,創(chuàng)建res_guard.gradle配置文件醋旦,名稱可自定義恒水。這里官方使用文檔上是直接寫在build.gradle文件中,這樣會(huì)使build文件內(nèi)容過多且繁雜饲齐,故建議放在單獨(dú)的gradle中間中。內(nèi)容如下:

apply plugin: 'AndResGuard'
andResGuard {
    // mappingFile = file("./resource_mapping.txt")
    mappingFile = null
    use7zip = true
    useSign = true
    // 打開這個(gè)開關(guān)咧最,會(huì)keep住所有資源的原始路徑捂人,只混淆資源的名字
    keepRoot = false
    whiteList = [
            // for your icon
            "R.drawable.icon",
            // for fabric
            "R.string.com.crashlytics.*",
            // for google-services
            "R.string.google_app_id",
            "R.string.gcm_defaultSenderId",
            "R.string.default_web_client_id",
            "R.string.ga_trackingId",
            "R.string.firebase_database_url",
            "R.string.google_api_key",
            "R.string.google_crash_reporting_api_key",

            //友盟
            "R.anim.umeng*",
            "R.string.umeng*",
            "R.string.UM*",
            "R.string.tb_*",
            "R.layout.umeng*",
            "R.layout.socialize_*",
            "R.layout.*messager*",
            "R.layout.tb_*",
            "R.color.umeng*",
            "R.color.tb_*",
            "R.style.*UM*",
            "R.style.umeng*",
            "R.drawable.umeng*",
            "R.drawable.tb_*",
            "R.drawable.sina*",
            "R.drawable.qq_*",
            "R.drawable.tb_*",
            "R.id.umeng*",
            "R.id.*messager*",
            "R.id.progress_bar_parent",
            "R.id.socialize_*",
            "R.id.webView",

            //個(gè)推
            "R.drawable.push",
            "R.drawable.push_small",
            "R.layout.getui_notification",

            //極光推送
            "R.drawable.jpush_notification_icon"
    ]
    compressFilePattern = [
            "*.png",
            "*.jpg",
            "*.jpeg",
            "*.gif",
    ]
    sevenzip {
        artifact = 'com.tencent.mm:SevenZip:1.2.17'
        //path = "/usr/local/bin/7za"
    }
    /**
     * 可選: 如果不設(shè)置則會(huì)默認(rèn)覆蓋assemble輸出的apk
     **/
    // finalApkBackupPath = "${project.rootDir}/final.apk"

    /**
     * 可選: 指定v1簽名時(shí)生成jar文件的摘要算法
     * 默認(rèn)值為“SHA-1”
     **/
    // digestalg = "SHA-256"
}

3.在主module(APP)目錄下的build.gradle中御雕,添加使用

apply from: 'res_guard.gradle'

集成完之后,在Gradle中的主module→Tasks中會(huì)有andresguard的task滥搭,打開會(huì)有:

  • resguardDebug
  • resguardRelease
  • resguardUseApk
    雙擊執(zhí)行resguardRelease酸纲,等待一段時(shí)間出現(xiàn)BUILD CUSSECCFUL后,在主module目錄下的/build/output/apk/release/AndResGuard_{apk_name}/ 中瑟匆,能得到混淆后的apk闽坡。
    解壓apk后,可以發(fā)現(xiàn)原來的資源文件res及里面的所有目錄都被單個(gè)字母所替換愁溜,且apk體積也有所縮減疾嗅。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市冕象,隨后出現(xiàn)的幾起案子代承,更是在濱河造成了極大的恐慌,老刑警劉巖渐扮,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件论悴,死亡現(xiàn)場離奇詭異,居然都是意外死亡墓律,警方通過查閱死者的電腦和手機(jī)膀估,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耻讽,“玉大人玖像,你說我怎么就攤上這事∑胍” “怎么了捐寥?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長祖驱。 經(jīng)常有香客問我握恳,道長,這世上最難降的妖魔是什么捺僻? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任乡洼,我火速辦了婚禮,結(jié)果婚禮上匕坯,老公的妹妹穿的比我還像新娘束昵。我一直安慰自己,他們只是感情好葛峻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布锹雏。 她就那樣靜靜地躺著,像睡著了一般术奖。 火紅的嫁衣襯著肌膚如雪礁遵。 梳的紋絲不亂的頭發(fā)上轻绞,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音佣耐,去河邊找鬼政勃。 笑死,一個(gè)胖子當(dāng)著我的面吹牛兼砖,可吹牛的內(nèi)容都是我干的奸远。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼讽挟,長吁一口氣:“原來是場噩夢啊……” “哼懒叛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起戏挡,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤芍瑞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后褐墅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拆檬,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年妥凳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了竟贯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡逝钥,死狀恐怖屑那,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情艘款,我是刑警寧澤持际,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站哗咆,受9級特大地震影響蜘欲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晌柬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一姥份、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧年碘,春花似錦澈歉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春凯砍,著一層夾襖步出監(jiān)牢的瞬間箱硕,已是汗流浹背拴竹。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工悟衩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人栓拜。 一個(gè)月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓座泳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親幕与。 傳聞我的和親對象是個(gè)殘疾皇子挑势,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354