導航:首頁 > 源碼編譯 > apktool反編譯失敗無法繼續

apktool反編譯失敗無法繼續

發布時間:2023-10-05 00:46:08

Ⅰ apk反編譯,回編出錯了

不影響正常運行,只是編譯環境,
compileSdkVersion 告訴 Gradle 用哪個 Android SDK 版本編譯你的應用。使用任何新添加的 API 就需要使用對應 Level 的 Android SDK。
需要強調的是修改 compileSdkVersion 不會改變運行時的行為。當你修改了 compileSdkVersion 的時候,可能會出現新的編譯警告、編譯錯誤,但新的 compileSdkVersion 不會被包含到 APK 中:它純粹只是在編譯的時候使用。(你真的應該修復這些警告,他們的出現一定是有原因的)
因此我們強烈推薦總是使用最新的 SDK 進行編譯。在現有代碼上使用新的編譯檢查可以獲得很多好處,避免新棄用的 API ,並且為使用新的 API 做好准備。
注意,如果使用 Support Library ,那麼使用最新發布的 Support Library 就需要使用最新的 SDK 編譯。例如,要使用 23.1.1 版本的 Support Library ,compileSdkVersion 就必需至少是 23 (大版本號要一致!)。通常,新版的 Support Library 隨著新的系統版本而發布,它為系統新增加的 API 和新特性提供兼容性支持。
解決辦法有兩種(我測試的前提是反編譯的母包是沒有包含這兩個屬性的):
(1)使用apktool 2.3.2版本,因為2.3.3之後版本針對appt和appt2做了修改,最後AndroidManifest.xml裡面不在包含compileSdkVersion和compileSdkVersionCodename
(2)清除原本的1.apk,重新指定framework-dir:java -jar apktool_2.4.0.jar empty-framework-dir --force,最後發現可以回編譯成功,但是AndroidManifest.xml還是會包含compileSdkVersion和compileSdkVersionCodename。

Ⅱ apktool 回編 報錯: brut.common.BrutException:could not exec (exit code = 1) 請各位大神幫忙 謝謝!

apktool解包後確實存在打包回不去的問題,這種情況下即使解包後什麼都不做直接回編也失敗,問題出在apk包上,可能做了反編譯的處理,使jar包結構發生改變,這種情況下就無法對該apk進行反編譯和回編的處理了。

匯編時出現:

F:apktool>apktool b Hello Hello.apk

Exception in thread "main" brut.androlib.AndrolibException: brut.directory.PathN

otExist: apktool.yml

at brut.androlib.Androlib.readMetaFile(Unknown Source)

at brut.androlib.Androlib.build(Unknown Source)

at brut.androlib.Androlib.build(Unknown Source)

at brut.apktool.Main.cmdBuild(Unknown Source)

at brut.apktool.Main.main(Unknown Source)

Caused by: brut.directory.PathNotExist: apktool.yml

at brut.directory.AbstractDirectory.getFileInput(Unknown Source)

經驗證是,反匯編時沒有生成apktool.yml

進行反匯編時,改用命令apktool d -r xx.apk xx便可以解決(加上了-r選項)。

(2)apktool反編譯失敗無法繼續擴展閱讀:

匯編執行指令經匯編程序翻譯為機器指令,二者之間基本上保持一一對應的關系。匯編偽指令又稱作匯編指示,用於向匯編程序提供用戶自定義的符號、數據的類型、數據空間的長度,以及目標程序的格式、存放位置等提示性信息,其作用是指示匯編程序如何進行匯編。使用匯編語言編寫的源代碼,需要通過使用相應的匯編程序將它們轉換成可執行的機器代碼。這一過程被稱為匯編過程。

許多匯編程序可以識別代表地址和常量的標簽(label)和符號(symbols),這樣就可以用字元來代表操作數而無需採取寫死的方式。普遍地說,特定的匯編語言和特定的機器語言指令集是一一對應的。

許多匯編程序為程序開發、匯編控制、輔助調試提供了額外的支持機制。有的匯編語言編程工具經常會提供宏,它們也被稱為宏匯編器。

Ⅲ 求助,apk被加密了,反編譯不了,可有方法解決

下載dex2jar JD-GUI apktool

反編譯步驟:
1.反編譯Apk得到Java源代碼
首先要下載兩個工具:dex2jar和JD-GUI
前者是將apk中的classes.dex轉化成Jar文件,而JD-GUI是一個反編譯工具,可以直接查看Jar包的源代碼。

具體步驟:
1.首先將apk文件,將後綴改為zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的;
2.解壓下載的dex2jar,將classes.dex復制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄
運行 dex2jar.bat classes.dex
生成 classes.dex.dex2jar.jar

2.反編譯apk生成程序的源代碼和圖片、XML配置、語言資源等文件
還是下載工具,這次用到的是apktool

具體步驟:
將下載的兩個包解壓到同一個文件夾下,應該會有三個文件:aapt.exe,apktool.bat,apktool.jar
1.解壓縮下載的兩個文件包,apktool-install-windows-r04-brut1.tar解壓縮後得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解壓後的一個.jar 文件到解壓後的\apktool-install-windows-r04-brut1文件夾里)
2.特別注意:你要反編譯的文件一定要放在C盤的根目錄里

Ⅳ 利用apktool 反編譯後簽名為什麼不能運行

apktool反編譯之後重新編譯的文件可能無法常運行。如果你只是修改了語言文件,可以在重新編譯以後,用壓縮軟體提取出resources.arsc文件,替換掉原軟體中的同名文件。注意這個文件不要壓縮(用WinRAR替換該文件的話,壓縮方式選「存儲」),否則可能有問題。也可以試試用原來的apk裡面的classes.dex文件將新軟體包裡面的那個替換掉。這樣一般可以運行。

閱讀全文

與apktool反編譯失敗無法繼續相關的資料

熱點內容
搶答器c程序編程 瀏覽:703
什麼app可以自己玩 瀏覽:76
刨客app是什麼 瀏覽:963
cad輸入命令欄不見了 瀏覽:834
做故事集可以用什麼app 瀏覽:692
qq郵箱發送壓縮包 瀏覽:672
程序員桌面機器人 瀏覽:589
xjr快速開發平台源碼 瀏覽:159
java介面runnable 瀏覽:31
python怎麼運行web伺服器 瀏覽:349
notepad編程代碼 瀏覽:740
什麼安卓的毛病最少 瀏覽:611
hp的pjl設備訪問命令 瀏覽:635
googlewebp圖片壓縮技術 瀏覽:215
tbc薩滿加血宏命令 瀏覽:757
pdf閃 瀏覽:289
手機伺服器地址填什麼 瀏覽:258
lrpython代碼 瀏覽:848
加密照片怎麼也找不到 瀏覽:796
卸載編譯安裝的java 瀏覽:299