回答
沒有,APK管理器反編譯的.dex
文件到.smali
和二進制.xml
人類可讀的XML。
序列(基於APK管理器4.9)是選擇包,然後反編譯它。如果您按1而不是9,那麼您只需將其解壓縮(僅在需要交換.png圖像時纔有用)。
有沒有工具可用於反編譯回.java
文件,並且很可能它不會有任何工具。有一種替代方法,它使用dex2jar將dex文件轉換爲.class
文件,然後使用jar反編譯器(例如免費的jd-gui)將純文本java。雖然這個過程並不是最優的,但它不會生成工作代碼,但它足夠體面以便能夠讀取它。
dex2jar:http://code.google.com/p/dex2jar/
JD-GUI:http://jd.benow.ca/
編輯:我所知道的是這裏的某個地方有在SO一個非常相似的答案的問題... decompiling DEX into Java sourcecode
我第二次說。
Dex2jar將生成一個WORKING jar,您可以將其作爲項目源添加到您從apktool獲得的xmls中。
但是,JDGUI會生成.java文件,這些文件通常具有錯誤。
我猜測它與代碼混淆有關。
dex2jar有助於反編譯你的apk,但不是100%。 .smali文件會有一些問題。 Dex2jar無法將其轉換爲java。我知道一個應用程序,可以反編譯你的apk源文件,並沒有與.smali文件的問題。這裏是鏈接http://www.hensence.com/en/smali2java/
我的推薦是Virtuous Ten Studio。該工具是免費的,但他們建議捐款。它將所有必要的步驟(解壓APK,反編譯,反編譯等)合併爲一個易於使用的基於UI的導入過程。在五分鐘之內,您應該擁有Java源代碼,比找出上述工具之一的命令行選項要少。
將smali編譯爲Java是一個不精確的過程,特別是如果smali構件經歷了一個混淆器。你可以在網上找到幾個反編譯器,但其中只有一些仍然保留。有些會比別人給你更好的反編碼。閱讀「更好」,如「比較容易理解」。不要期望反向工程的Java代碼可以直接編譯出來。Virtuous Ten Studio附帶了多個免費的Java內置反編譯器,因此您可以輕鬆嘗試不同的反編譯器(「生成Java源代碼」步驟),查看哪一個可以爲您提供最佳結果,從而節省您自己查找這些反編譯器的時間,瞭解如何使用它們。其中有CFR,它是少數幾個免費且仍然保留的反編譯器之一。
作爲輸出,您會收到包含所有已反編譯的Java源代碼的文件夾結構。然後,您可以將其導入到IntelliJ IDEA或Eclipse中以進行進一步編輯,分析(例如,定義,查找用法)等。
Christoph,Virtuous Ten Studio支持in-smali方法/類重構? – 2015-05-25 14:00:38
你能說出你與善良的關係嗎? – Sirens 2015-08-16 16:50:17
Virtous不能正確地將smali轉換爲java。給出錯誤,指出.java文件沒有找到它自己應該生成的地方。浪費時間 – 2015-08-18 13:50:05
爲了獲得將.apk文件轉換爲.java文件的實用視圖,請查看https://www.youtube.com/watch?v=-AX4NYE-9V8視頻。你會得到更多的好處和清楚的理解。它清楚地展示了您使用mac OS
時所需的步驟。
完成這項工作的基本要求。 1. http://code.google.com/p/dex2jar/
2. http://jd.benow.ca/
有一個新的交叉。平臺(JAVA)和開源工具,使您能夠做到這一點,只是結賬https://bytecodeviewer.com
==== =====
編輯: 截至2017年4月,有一個由谷歌開發的新開源工具,意思是做我們一直在尋找的東西=>http://classyshark.com
- 1. 反編譯.apk文件
- 2. ubuntu上的反編譯和重新編譯apk文件
- 3. 反編譯APK
- 4. 無法反編譯的apk文件
- 5. 如何反編譯Android .apk文件?
- 6. 反編譯Android apk
- 7. Android中的反編譯.apk
- 8. 防止反編譯android apk
- 9. 反編譯保護APK
- 10. 反編譯時出錯apk
- 11. 從反編譯的.apk創建Android .apk
- 12. 如何在反編譯apk中獲取Google-Service.Json文件?
- 13. apktool在反編譯時出錯.apk
- 14. 編輯APK反編譯的代碼
- 15. 反編譯在Appcelerator中創建的.apk文件並獲取到.js文件
- 16. Android - 如何解碼和反編譯任何APK文件?
- 17. 是否可以反編譯Android .apk文件?
- 18. 如何用eclipse打開反編譯apk文件?
- 19. 如何保護APK文件以防止反編譯
- 20. Android - 不想反編譯我的apk文件
- 21. 反編譯機器人apk文件創建Java源代碼
- 22. 將.class文件轉換爲smali文件並再次打包.apk
- 23. 編譯和反編譯dll文件
- 24. 反編譯APK,但缺少一些類?
- 25. 反編譯APK,Catlog「ClassNotFound」錯誤
- 26. 修改APK沒有反編譯它
- 27. 反編譯apk和注入代碼
- 28. 反編譯的Android APK閃光燈
- 29. 如何將xml佈局文件與反編譯的apk上的整數匹配?
- 30. 在web服務器上編譯apk文件
**對不起,您的意思是jd-gui _won't_ generate _working code _?**反編譯器應該生成工作代碼;如果不是,那麼我們並不是說反編譯器。你不這麼認爲嗎? – 2012-01-09 17:52:33
所以如何將編輯後的文件(.java/.class/.smali/.jar)再次打包成apk文件..請幫助。 – 2012-04-13 12:51:18
JD-GUI變得非常接近,但不夠接近。 – 2012-06-05 19:21:36