作為Android開發(fā)者反編譯apk是我們需要掌握的技能吱肌,那么在Ubuntu環(huán)境下反編譯怎么進(jìn)行Apk的反編譯呢?
工具
dex2jar使用
- 先參照上邊提供的地址下載并解壓dex2jar
- 然后再使用unzip命令解壓apk,我們會(huì)在目錄下邊看到.dex文件
- 執(zhí)行反編譯命令
sh d2j-dex2jar.sh /home/im/Desktop/dex2jar/-debug-apk/classes.dex
上述命令執(zhí)行的過程中可能會(huì)遇到一些問題:
問題1:提示:
d2j-dex2jar.sh: 36: d2j-dex2jar.sh: ./d2j_invoke.sh: Permission denied
原因:d2j_invoke.sh文件沒有執(zhí)行權(quán)限
解決:添加可執(zhí)行權(quán)限:sudo chmod +x d2j_invoke.sh
問題2:生產(chǎn)的jar可能為空
原因:d2j-dex2jar.sh執(zhí)行會(huì)依賴其它的腳本(單獨(dú)拷貝出來(lái)執(zhí)行會(huì)有問題)
解決:執(zhí)行它的時(shí)候dex2jar的其它文件最好也在相同的目錄
正確運(yùn)行結(jié)果:
im@58user:~/Downloads/dex2jar-2.0$ sudo chmod +x d2j_invoke.sh
im@58user:~/Downloads/dex2jar-2.0$ sh d2j-dex2jar.sh /home/im/Desktop/dex2jar/bangjob-apk/classes.dex
dex2jar /home/im/Desktop/dex2jar/bangjob-apk/classes.dex -> ./classes-dex2jar.jar
然后會(huì)在該目錄生成classes-dex2jar.jar文件讨韭。
jd-gui使用
- 先參照上邊提供的地址下載文件
- 然后直接打開jd-gui
可能遇到的問題:
jd-gui程序執(zhí)行的時(shí)候可能沒有任何反應(yīng),那是因?yàn)椴僮飨到y(tǒng)可能缺少某些環(huán)境。執(zhí)行該命令:sudo apt-get install gtk2-engines-murrine:i386 libgtk2.0-0:i386 libcanberra-gtk-module:i386 libgtk2.0-0:i386 libxxf86vm1:i386 libsm6:i386 lib32stdc++6 lib32ncurses5 lib32bz2-1.0 libgtk2.0-0:i386 libxxf86vm1:i386 libsm-dev:i386 libcanberra-gtk3-module:i386
后然再運(yùn)行jd-gui程序课幕,畫面即將展現(xiàn)~!~五垮!