Ubuntu14.04反編譯Apk[試試就知道]

作爲Android開發者反編譯apk是我們需要掌握的技能,那麼在Ubuntu環境下反編譯怎麼進行Apk的反編譯呢?

工具

dex2jar使用

  • 先參照上邊提供的地址下載並解壓dex2jar
  • 然後再使用unzip命令解壓apk,我們會在目錄下邊看到.dex文件
  • 執行反編譯命令
    sh d2j-dex2jar.sh /home/im/Desktop/dex2jar/-debug-apk/classes.dex

上述命令執行的過程中可能會遇到一些問題:

問題1:提示:d2j-dex2jar.sh: 36: d2j-dex2jar.sh: ./d2j_invoke.sh: Permission denied
原因:d2j_invoke.sh文件沒有執行權限
解決:添加可執行權限:sudo chmod +x d2j_invoke.sh

問題2:生產的jar可能爲空
原因:d2j-dex2jar.sh執行會依賴其它的腳本(單獨拷貝出來執行會有問題)
解決:執行它的時候dex2jar的其它文件最好也在相同的目錄

正確運行結果:

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
  • 1
  • 2
  • 3

然後會在該目錄生成classes-dex2jar.jar文件。

jd-gui使用

  • 先參照上邊提供的地址下載文件
  • 然後直接打開jd-gui

可能遇到的問題:
jd-gui程序執行的時候可能沒有任何反應,那是因爲操作系統可能缺少某些環境。執行該命令: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後然再運行jd-gui程序,畫面即將展現~!~!

dex2jar.png

發佈了9 篇原創文章 · 獲贊 21 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章