1. 程式人生 > 實用技巧 >apk反編譯

apk反編譯

APK反編譯(dex2jar,jd-gui)

今天,人家讓我反編譯一個apk。結果弄了好半天,才弄好。一直都是無法找到命令,原來是犯了低階錯誤。今天,記錄一下。

一、準備工具
  • dex2jar 將apk中的dex(位元組碼檔案),轉為jar包(java程式碼)
  • jd-gui 解壓jar包,檢視裡面的java程式碼工具

下載連結:

其實還有一個apktoolg工具,這個主要是檢視apk中res資料夾下的檔案,將資原始檔解碼

最後奉上我的百度網盤:https://pan.baidu.com/s/1f7_apApzcTE7feeBsEHMSw 提取碼:5tr2

二、反編譯步驟

注意:這裡主要是檢視apk的原始碼,沒有用apktool工具來解碼資原始檔。

  • 下載安裝dex2jarjd-gui

    • 解壓下載的dex2jarjd-gui壓縮檔案(我下載的是zip壓縮檔案)

  • 上面的工具下載好之後,準備好你的apk檔案(如:some.apk),然後進行如下操作:

    • 解壓apk檔案(直接使用rar、zip等解壓工具,解壓即可)。解壓的檔案裡面包含:classes.dex,Manifest.xml等檔案。


    • 複製classes.dex檔案,放到dex2jar的解壓資料夾中(這個資料夾隨意,只要是dex2jar解壓的即可)。

    • 開啟命令列視窗 shift + 右鍵 找到 poershell 或者 cmd 。當前所在路徑為:dex2jar解壓後的資料夾下。輸入命令 d2j-dex2jar.bat classes.dex 就會出現對應的classes.jar了。也就成功了。這裡有一個坑,就是輸入上面的命令,報錯:d2j-dex2jar.bat找不到該命令。你要使用這個命令:./d2j-dex2jar.bat classes.dex 命令的前面需要使用路徑,否則就加上環境變數(我想的,沒試過)

    • 將classes.jar拖到jd-gui中,就可以看到原始碼了。如果沒有被混淆的話,那就可以暢快的閱讀原始碼了。如果被混淆了,那不可惜了,只有a,b,c等著你。。。

整個下來很簡單。主要是上面的 d2j-dex2jar.bat 這個命令無法找到的錯誤,倒騰半天就很無語。

三、解壓遇到的問題:

....com.googlecode....Dex2Jar 具體什麼錯誤,就忘記了。

如果遇到這個問題,似乎是裡面不乾淨了。把dex2jar刪掉,重新解壓一遍就好了。