有沒有辦法從APK文件中獲取源代碼?

個人筆記本電腦上的硬盤驅動器剛剛崩潰,而且丟失了過去兩個月來我一直在使用的應用程序的全部源代碼。 我所擁有的就是APK文件,該文件存儲在我發送給朋友時的電子郵件中。 html

有什麼辦法能夠從這個APK文件中提取個人源代碼? java


#1樓

這兩篇文章描述瞭如何結合使用apktooldex2jar來獲取APK文件,並建立一個能夠構建和運行它的Eclipse項目。 linux

http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html android

http://blog.inyourbits.com/2012/12/extending-existing-android-applications.html git

基本上,您: github

  1. 使用apktool將資源文件移出apk
  2. 使用dex2jar得到一個jar文件,其中包含Eclipse所需格式的類。
  3. 建立一個Eclipse項目,將其指向資源文件和新的jar文件
  4. 使用zip實用程序打開jar文件並刪除現有資源
  5. 使用JDGui打開jar文件以查看源代碼
  6. JDGui所需的任何源代碼,將其粘貼到Eclipse中的類中並對其進行修改
  7. 從jar文件中刪除該類(所以您沒有屢次定義相同的類)
  8. 運行。

#2樓

我將向您展現其餘反編譯.apk文件的方法。 windows

您能夠按照「 prankul garg 」的前兩個步驟進行操做 。 所以,您還有另外一個機會: app

步驟3': 函數

下載「 JD-GUI」 ,就很容易找到這個。 在「 jd-gui.exe」中打開您的.jar文件。 (文件>打開文件>'找到您的.jar文件')。 完成此過程後,您能夠將全部資源保存爲.zip文件。 學習

因此,

1st-您必須將.apk文件重命名爲.zip

2-您必須解碼.dex文件(若是須要,能夠將.apk文件解碼爲dex2jar

3-您必須使用JD-GUI解碼.jar文件


#3樓

這是一個替代性說明-以防萬一有人卡在上面的說明中。 按照步驟:

  1. http://ibotpeaches.github.io/Apktool/install/下載apktool.bat (或Linux的apktool )和apktool_<version>.jar
  2. 從上面將jar文件重命名爲apktool.jar並將兩個文件放在同一文件夾中

  3. 打開一個dos框( cmd.exe )並轉到該文件夾​​; 驗證是否已安裝Java環境(對於Linux,請同時查看有關所需庫的註釋)
  4. 開始: apktool decode [apk file]

    中間結果 :資源文件, AndroidManifest.xml

  5. 使用您選擇的解壓縮器解壓縮APK文件

    中間結果classes.dex

  6. http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=下載並解壓縮dex2jar-0.0.9.15.zip
  7. classes.dex拖放到dex2jar.bat (或在DOS框中輸入<path_to>\\dex2jar.bat classes.dex ;對於Linux使用dex2jar.sh

    中間結果classes_dex2jar.jar

  8. 解壓縮classes_dex2jar.jar (根據使用的反編譯器多是可選的)
  9. 反編譯您的類文件(例如,使用JD-GUIDJ Decompiler

    結果 :源代碼

注意:不容許反編譯第三方軟件包; 本指南僅旨在從APK文件中恢復我的源代碼; 最後,最終的代碼極可能會被混淆


#4樓

Play商店上還有一個新應用程序,能夠經過它反編譯apk(也爲系統應用程序)並在智能手機上查看源代碼。 它將文件保存到SD卡,所以您也能夠在計算機上查看文件。 它不須要root或其餘東西。

只需安裝並享受樂趣。 我認爲這是反編譯應用程序的最簡單方法。


#5樓

雖然您能夠反編譯APK文件,但您可能會遇到一個大問題:

它不會返回您編寫的代碼。 相反,它將返回編譯器內聯的全部內容,其中變量具備隨機名稱,而函數具備隨機名稱。 與從新開始相比,嘗試反編譯並將其還原到您擁有的代碼中可能要花費更多的時間。

可悲的是,像這樣的事情已經殺死了許多項目。
對於將來,我強烈建議學習版本控制系統,例如CVSSVNgit等。

以及如何備份。

相關文章
相關標籤/搜索