在反編譯之前我們需要兩個(gè)工具助手:
1.apktool 此工具可以幫助我們把a(bǔ)pk文件拆包并且打包
2.jadx 查看apk文件代碼
3.java 1.8 版本(1.8版本可以進(jìn)行重簽名)
反編譯需要的步驟:
一术吗、拆包
首先拆包需要一個(gè)重要的文件就是上面的apktool助手
下載安裝好apktool之后我們就可以開(kāi)始進(jìn)行apk拆包工作了
1.將需要反編譯的apk文件挪到你的apktool文件夾同級(jí)文件夾里面去
2.打開(kāi)終端 cd 到你apktool的文件夾里面去 :cd ..../Desktop/androidUntie
3. 執(zhí)行: apktool -f d xxx.apk -o xxx_file --only-main-classes
4.這個(gè)時(shí)候你會(huì)得到在apktool文件同級(jí)文件夾里面有個(gè)xxx_file的文件夾窍仰,這個(gè)文件夾里面都是應(yīng)用程序的所有資源和代碼
二、打開(kāi)smali文件修改代碼
在我們得到了xxx_file 這個(gè)文件夾之后我們就可以點(diǎn)擊進(jìn)去,找到smali文件嫁佳,可能會(huì)存在smaili_classes2... 等等文件夾,那是分包得到的文件夾,原因是因?yàn)閼?yīng)用程序方法數(shù)量超出了限制董栽,繼續(xù)點(diǎn)擊到你的smali文件夾里面去,里面包含了各種名稱的文件夾企孩,點(diǎn)開(kāi)里面的文件夾裆泳,這些文件夾都是你的jar包和你的程序文件,找到你你程序包文件夾之后點(diǎn)擊進(jìn)去里面就是以你的代碼文件名稱命名的.smali文件柠硕,這個(gè).smali 文件可以拖到你的AS編譯器里面查看和修改工禾,待修改完成后,保存起來(lái)就行蝗柔。
三闻葵、重新打包(此時(shí)是未簽名狀態(tài))
1.繼續(xù)打開(kāi)終端執(zhí)行:apktool b xxx_file -o xxx_no.apk
2.此時(shí),xxx_no.apk 文件是暫未簽名的文件還不可以安裝到手機(jī)癣丧,需要進(jìn)行簽名操作之后就可以安裝到你的手機(jī)
四槽畔、重新簽名
1.簽名需要你的簽名文件,簽名文件是從AS編譯器里面得到的文件胁编,因此可以直接去AS里面去制作一個(gè)簽名文件厢钧,這里 我的前面文件名稱是 game.jks
2.在簽名之前你可以查看一下你的電腦是否安裝java環(huán)境,查看電腦是否安裝java環(huán)境,直接在終端執(zhí)行 java -version 就能查看到你的電腦是否安裝了java環(huán)境
3.安裝完 java 環(huán)境后我們就能簽名了
4.終端執(zhí)行下面的命令:
jarsigner -verbose -keystore [你的jks文件路徑] -signedjar [你簽好名的文件路徑] [未簽名的apk路徑] [jks文件名稱]
例如: jarsigner -verbose -keystore .../Desktop/androidUntie/xxx_sin.apk .../Desktop/androidUntie/xxx_no.apk game (省略號(hào)是路徑)
5.點(diǎn)擊回車后會(huì)讓你輸入你的jks文件的密碼嬉橙,輸入密碼即可簽名早直,待簽名完成后你的文件夾里面會(huì)出現(xiàn)你的簽好名的apk文件,借助adb將它安裝到手機(jī)即可
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者