前言
現(xiàn)在市場中加固apk的方式一般有兩種:
第一種是對源apk整體做一個加固锨天,放到指定位置,運行的時候再解密動態(tài)加載。
第二種是對so進行加固成榜,在so加載內(nèi)存的時候進行解密釋放席爽。
我們今天主要針對第一種加固方式進行dex文件的獲取意荤。
一、工具準備
1.一部Root過的Android手機只锻。
2.安裝Xposed模塊玖像。
下載Xposed框架:打開手機瀏覽器,百度搜索xposed installer,點擊下載齐饮。
Xposed框架是一款可以在不修改APK的情況下影響程序運行(修改系統(tǒng))的框架服務(wù)捐寥,基于它可以制作出許多功能強大的模塊,且在功能不沖突的情況下同時運作祖驱。當(dāng)前握恳,Per APP Setting(為每個應(yīng)用設(shè)置單獨的dpi或修改權(quán)限)、XPrivacy(防止隱私泄露)捺僻、對原生Launcher替換圖標等應(yīng)用或功能均基于此框架乡洼。
3.安裝DumpDex。(脫殼神器)
打開https://github.com/WrBug/dumpDex, 從這個頁面下載APK安裝包就珠,或者直接下載源碼進行編譯項目到手機上寇壳。
注意在下載源碼進行編譯時,你可能會遇到簽名問題和Run configuration配置問題妻怎。但都容易解決壳炎。配置問題解決方法:Run configuration中Launch Options選項選為Nothing,因為此項目是插件逼侦,沒有啟動頁面匿辩。
4.下載Dex2jar、JD-GUI 榛丢。(用于對dex文件進行分析)
在SOURCE FORGE官網(wǎng) 下載dex2jar的zip包铲球。目前最新版本是2.0,完成后解壓晰赞。
在Java Decompiler官網(wǎng) 下載jd-gui稼病,同樣解壓。
二掖鱼、脫殼過程
- 打開【Xposed Installer】App,在【模塊】菜單中勾選DumpDex插件然走,然后重啟設(shè)備。
- 打開需要脫殼的App(此App應(yīng)該已加固)戏挡。
- 打開【es文件瀏覽器】芍瑞,勾選側(cè)邊欄菜單內(nèi)“Root工具箱”,在根目錄/data/data目錄下搜索dump褐墅,如果脫殼成功拆檬,就可以搜索到一個或多個dump文件夾,里面就是目標dex妥凳。(系統(tǒng)自帶文件瀏覽器竟贯,大多找不到root后的data目錄)
三、Dex轉(zhuǎn)Jar相關(guān)
- 上面三步是脫殼過程猾封。如果前面已順利得到dex文件澄耍,那么現(xiàn)在就要把dex文件取到PC上。
由于dex文件在root目錄下晌缘, Android Studio的Device File Explorer沒有copy權(quán)限齐莲,一個便捷的方法是在手機上把這些文件拷貝到外面的一些可見目錄中。然后在Android Studio的Device File Explorer中copy這些文件到PC磷箕。 - 把dex文件存copy到d2j目錄下选酗,在終端執(zhí)行反編譯命令,生成jar文件后用jd-gui打開岳枷。
- 最后芒填,讓太君去開一瓶82年的雪碧呜叫,慶祝一下????
總結(jié)下來發(fā)現(xiàn),對360加固(免費)殿衰、愛加密(收費)朱庆、娜迦加固(收費)等加固包都成功拿到dex文件。沒加固的不管你怎么混淆都很容易被人分析得干干凈凈闷祥,免費版的加固可以防止大多數(shù)只會反編譯的小白娱颊,對于普通攻擊者還是很有效果的。目前用此方法來看凯砍,無論免費版還是商業(yè)版箱硕,都能被破解,所以悟衩,產(chǎn)品設(shè)計的時候從安全角度出發(fā)剧罩,增強業(yè)務(wù)層面的安全風(fēng)控,遠比把重心放在加固上重要座泳。