2012-05-27 344 views
4

我想在Android中反編譯並重新編譯.apk文件(我想訪問某些應用程序的Android Manifest文件)。我知道APKTool,但我想知道是否可以在Android中反編譯APK(反編譯器爲Android應用程序)。Android中的反編譯.apk

+0

如果您可以反編譯並重新創建.apk,那麼您可能會對其進行反編譯,但不能在第二部分中進行反編譯,而且在Android上也不會。 –

+1

不完全如此。 [AntiLvl](http://androidcracking.blogspot.com/p/antilvl.html),[APKTool](http://code.google.com/p/android-apktool/)和[APKInspector](http:/ /code.google.com/p/apkinspector/)已經使反編譯/重新編譯應用程序變得微不足道了。安全風險?是的,但作爲開發人員,有一些方法可以使其至少變得更加困難(混淆只是我的一個例子) – KDEx

+0

AntiLvl的正確鏈接是:http://androidcracking.blogspot.com/p/antilvl_01 .html – codechurn

回答

9

獲取清單很容易。將擴展名從.apk更改爲.zip並提取清單。大多數時候,它保持完整和可解析。如果不是,那麼可以使用許多免費的開源工具。 APKTool是一個很好用的。看一下source code可以給你一個關於如何實現這一點的更好的想法,然後你可以在Android環境中實現它。

+0

我可能還會補充說,這個APKTool-> dex2jar->任何反編譯器路徑都有一個現代替代方案! 只需嘗試一個名爲Jadx的開源APK和DEX反編譯器:https://sourceforge.net/projects/jadx/files/ 它也有在線版本:http://www.javadecompilers.com/apk –

2

無恥的插件,我剛創建了一個開源軟件包,管理APK反編譯過程https://github.com/lxdvs/apk2gold

apktool反編譯爲Smali;我的軟件包apk2gold將反編譯爲Java。

+1

他會喜歡重新編譯他的apks。嘗試重新編譯dex2jar apks很有趣。另一方面,apktool將重新編譯apks,並在設備上正常工作:) –

+0

@Alex Davis請您列出在Windows中運行make.sh所需的一系列步驟。我嘗試使用git bash,引發了一堆錯誤,指出make.sh沒有與任何git項目關聯。我下載了win-bash,現在錯誤與maven bin不存在以及未指定JAVA_HOME相關聯。底線是:* .sh文件適用於基於Linux或Mac的操作系統。通常在Windows中,有一個等效的* .bat(批處理可執行文件)。你在這種情況下推薦什麼窗口? – iOSAndroidWindowsMobileAppsDev