什么是脫殼?
脫殼是把加在軟件上的保護(hù)程序脫了 直接能看到它的原碼
對(duì)于android而言 就是把加固后的apk打回原形 (閱讀起來(lái)還是有點(diǎn)費(fèi)力的)
脫殼所需要的軟件
這里列一個(gè)清單 都是脫殼和反編譯所需要的軟件
地址 提取碼 : hkr7
APK TOOL :谷歌提供的 APK 編譯工具,可以反編譯和回編譯(主要看xml和資源文件這些東西)
dex2jar:將 dex 文件轉(zhuǎn)換成 jar
jd-gui:用來(lái)查看 jar 包里面的代碼
VirtualXposed: 一下簡(jiǎn)稱 VX
FDex:
Total_Commander: 這就是一個(gè)資源文件管理器沒(méi)什么新奇(如果手機(jī)未root才會(huì)用到它)
脫殼之前先要說(shuō)一下反編譯
------------------------第一種反編譯(無(wú)法看到邏輯)------------------------
------------------------所需軟件apktool------------------------
這種編譯出來(lái)的文件里看不到帶碼邏輯因?yàn)閹Тa部分都是.smali格式的文件
打開(kāi)運(yùn)行窗口進(jìn)入到apk_tool所在文件夾 運(yùn)行
java -jar apktool.jar d -f appname.apk -o OUT
appname.apk是你要反編譯的apk
OUT 是反編譯之后輸出的文件夾名稱(可以隨意取名)

------------------------第二種反編譯(可以看到邏輯)------------------------
------------------------所需軟件dex2jar和jd-gui------------------------
首先需要將下載的dex2jar和jd-gui解壓
第一步: 修改.apk文件后綴名改為.zip 并且解壓獲取到 .dex 文件
第二步: 將獲取到的dex文件復(fù)制到dex2jar解壓后的文件夾中
第三步: 命令行進(jìn)入到dex2jar的文件夾執(zhí)行.\dex2jar.bat classes.dex執(zhí)行成功會(huì)會(huì)生成.jar文件
這個(gè)步驟會(huì)有一個(gè)小細(xì)節(jié)
如果你在執(zhí)行的時(shí)候報(bào)錯(cuò)不要慌張 打開(kāi)classes.dex 把頭文件改為036或者035?(我的是037 所以會(huì)報(bào)錯(cuò)貌似是因?yàn)槭裁匆?guī)則)
報(bào)錯(cuò)截圖
圖片.png
第四步:打開(kāi)jd-gui將生成的jar直接拖到里面就可以看到帶碼了
朋友沒(méi)有沒(méi)有覺(jué)得很復(fù)雜? 提供一個(gè)界面化的工具 地址提取碼:c95n
小結(jié): 以上就是整體的反編譯過(guò)程 只適用沒(méi)有加固的app如果如果加固了就像穿了衣服一樣不過(guò)不用緊張 我們可以運(yùn)用手段幫她脫
脫殼過(guò)程(脫衣)
首先要準(zhǔn)備一個(gè)手機(jī)因?yàn)镕Dex和VX對(duì)手機(jī)版本有要求我準(zhǔn)備了一個(gè)android6.0系統(tǒng)手機(jī) 9.0系統(tǒng)以上就不要嘗試了
提前說(shuō)一下手機(jī)是否有root權(quán)限均可,沒(méi)有root權(quán)限就需要安裝Total_Commander以便于將生成的.dex文件導(dǎo)出到電腦中
配置XV
第一步:裝軟件把以上所提到的軟件統(tǒng)統(tǒng)裝到手機(jī)中(還有要被脫的軟件)

第二步: 打開(kāi)vx進(jìn)入到設(shè)置>添加應(yīng)用>選中Fdex(和剛才安裝的所有應(yīng)用)>安裝
第三部:在xv中打開(kāi)Xposed Installer > 選擇右上角三 > 模塊 > 勾選FDex

第四步: 回到xv設(shè)置中重啟xv
----------xv里面的設(shè)置已經(jīng)全部配置好了----------
插一下說(shuō)一說(shuō)查看脫出來(lái)了dex(這個(gè)要提到前面說(shuō)不然脫得流程可能要重新走一次)
這個(gè)分兩種情況就是有沒(méi)有root權(quán)限.有權(quán)限的拿到dex的輸出路徑自己隨便搞,這里介紹一下沒(méi)有權(quán)限的 就是使用Total_Commander
第一步:xv里打開(kāi)Total_Commander點(diǎn)擊書(shū)簽就是那個(gè)紅框框

第二步:添加書(shū)簽>位置為
\data\data\io.va.exposed 如圖 點(diǎn)擊保存
一會(huì)脫出來(lái)的dex文件就會(huì)顯示在這個(gè)書(shū)簽中
配置FDex2
第一步: 打開(kāi)fdex2選擇你要脫得的應(yīng)用點(diǎn)他(開(kāi)始解扣子咳咳)

第二步: 點(diǎn)擊ok返回到xv的首頁(yè)(目前為止扣子已經(jīng)解開(kāi)一半了咳 ! 咳 ! )
第三部: 打開(kāi)你剛剛選中的應(yīng)用也就是你要脫的應(yīng)用
可能說(shuō)出來(lái)你不信 已經(jīng)脫完了(我說(shuō)的是脫殼不要瞎想)可是我們什么也沒(méi)看到啊 白忙了么?怎么會(huì)...
查看脫出來(lái)的dex(赤果果?)
(這里以沒(méi)有root機(jī)器為主)記得剛剛配置的Total_Commander輸出路徑么?用到它了
第一步:在xv中打開(kāi)Total_Commander
第二步:打開(kāi)剛剛創(chuàng)建的書(shū)簽>virtual>data>user>0>要脫的包名文件夾

第三部: 不管用什么辦法將這個(gè)幾個(gè)dex文件弄到sdcard目錄移動(dòng)復(fù)制都可以
第四步: 反編譯流程走一遍 dex2jar 再用jd-gui打開(kāi)編譯后的jar
為什么會(huì)有這么多dex及哪個(gè)dex里面是帶碼邏輯什么的不要問(wèn) ,問(wèn)就是不知道因?yàn)槲乙膊惶私夤?/strong>

脫出來(lái)的帶碼閱讀性一般不過(guò)慢慢看還是可以的

