2012-05-27 178 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