apktool 反編譯app 再重新編譯

環(huán)境:mac

安裝工具:

1.apktool
2.dex2jar
3.jd-gui

1.反編譯xxx.apk


apktool d xxx.apk

反編譯出來就是apk的源文件,像下面這樣:

這里面要修改代碼的話只能看smali文件 看懂還是比較難 畢竟是編譯后文件 就像js壓縮后的文件一樣 具體的邏輯都看不懂 所以我門需要知道java源文件

2.dex2jar 解壓出java文件

修改xxx.apk 為 .zip/.rar 文件 然后解壓 這時(shí)候會(huì)得到下邊這些:

這里的classes.dex 就是我門需要的

把classes.dex 放到下載好的dex2jar 目錄下 運(yùn)行:

sudo sh d2j-dex2jar.sh classes.dex

得到 classes_dex2jar.jar

用 jd-gui就可以打開classes_dex2jar.jar 文件了

打開來 都是java代碼

還存在的問題:

1.暫時(shí)還沒有說直接修改java代碼然后在轉(zhuǎn)成dex的方法

2.其實(shí)就是java代碼看起來方便些,找到自己要修改的地方,對(duì)應(yīng)著去修改smali文件 然后保存后直接編譯成apk

3.這需要一部分smali基礎(chǔ) 作為前端小白 看了下基本的語法 還是可以改的

注意:在dex2jar目錄下執(zhí)行sudo sh d2j-dex2jar.sh classes.dex時(shí)報(bào)錯(cuò)如下 d2j-dex2jar.sh: 36: d2j-dex2jar.sh: ./d2j_invoke.sh: Permission denied

執(zhí)行:sudo chmod +x d2j_invoke.sh

把xxx.apk

拿到j(luò)ar文件 用jd-gui打開

3.修改smali文件

1C0A6D72-D1F5-44F5-BA20-759267E519C5.png

4.編譯成 apk: apktool b xxx

5.生成簽名

keytool -genkey -alias xxx.keystore -keyalg RSA -validity 20000 -keystore xxx.keystore

6.用簽名來signapk

jarsigner -verbose -keystore xxx.keystore -signedjar xxx_signed.apk xxx.apk xxx.keystore
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容