該篇文章參考了其他博主的一些內(nèi)容,并結(jié)合自身的實(shí)踐進(jìn)行總結(jié)記錄,作為資料汁蝶,方便后續(xù)的查閱。
一论悴、準(zhǔn)備工具
1掖棉、dex2jar:把dex文件轉(zhuǎn)換成jar文件,下載鏈接:https://sourceforge.net/projects/dex2jar/
2膀估、jd-gui:把jar文件轉(zhuǎn)換成java文件幔亥,下載鏈接:http://java-decompiler.github.io/
3、apktool:apk逆向工具察纯,將apk包中的資源文件解析出來(lái)帕棉。下載鏈接:https://ibotpeaches.github.io/Apktool/install/
二、反編譯代碼
1饼记、首先解壓dex-tool-2.0.zip得到dex2jar-2.0文件夾香伴,
mac環(huán)境下需要的三個(gè)文件是 d2j_invoke.sh、d2j-dex2jar.sh具则、lib即纲,他們?cè)谕荒夸浖?jí)別。
2博肋、將apk文件的后綴改為zip并解壓低斋,然后將classes.dex文件移動(dòng)到dex2jar-2.0的文件夾目錄下,即與上述三個(gè)文件統(tǒng)一目錄匪凡。
3膊畴、打開終端cd 到該目錄下輸入命令:
給這兩個(gè)文件添加可執(zhí)行權(quán)限。然后輸入命令:
這時(shí)候就會(huì)在dex2jar-2.0目錄下生成一個(gè)classes-dexjar.jar文件
4打開jd-gui-osx病游,使用JD-GUI.app打開classes-dexjar.jar即可唇跨。
三、反編譯資源:
1、打開?wrapper script买猖,將里面的內(nèi)容拷貝到新的txt中改橘,并命名為apktool.sh
2、下載apktool.jar政勃,選擇最新版本即可唧龄,下載完成后兼砖,將jar包命名為apktool.jar
3奸远、將apktool.sh和apktool.jar放在同一個(gè)目錄。
4讽挟、將apk文件移動(dòng)到與上述兩個(gè)文件相同的目錄,終端cd到該目錄懒叛,執(zhí)行命令:
5、結(jié)束以后耽梅,就會(huì)多出一個(gè)xxx的文件夾薛窥,內(nèi)容如下:
三、反編譯資源映射文件:
R.class文件中的資源ID經(jīng)過(guò)混淆后眼姐,需要通過(guò)反編譯resources.arsc才能找到與之映射的資源文件名稱诅迷。
1、R.class中的資源id = 2130843560众旗,對(duì)應(yīng)16進(jìn)制為0x7F0217A8罢杉。
2、執(zhí)行aapt d resources XXX.apk命令進(jìn)行反編譯贡歧,將反編譯結(jié)果輸出到文本中
?aapt d resources /Users/bug處理/反編譯工具/release_qidian_android_3.7.0.apk > a.txt
查詢0x7F0217A8滩租,就可以找到對(duì)應(yīng)的文件名稱了