在安卓系统中反编译.apk文件

5

我想在Android中反编译并重新编译一个.apk文件(我想要访问一些应用程序的Android Manifest)。我知道 APKTool,但我想知道是否可能在Android中反编译apk文件(作为一种Android应用程序的反编译器)。


如果您可以反编译并重新创建.apk文件,那么这将是一种安全风险,因此您可能能够反编译第一部分,但不能反编译第二部分,也不能在Android上进行。 - James Black
1
并不完全正确。AntiLvlAPKToolAPKInspector已经使得反编译/重新编译应用程序变得非常容易。安全风险?是的,但作为开发者,有一些方法可以使其至少更加困难(混淆只是一个例子)。 - KDEx
AntiLvl的正确链接是:http://androidcracking.blogspot.com/p/antilvl_01.html。 - codechurn
2个回答

9

获取清单很容易。将扩展名从.apk更改为.zip并提取清单。大多数情况下,它保持不变且可解析。如果不是这种情况,则有许多免费的开源工具可供使用。 APKTool也是一个很好的选择。查看源代码可以让您更好地了解如何实现此操作,然后您可以在Android环境中实现它。


我还可以补充一点,这个APKTool->dex2jar->任何反编译器的路线有现代替代品!只需尝试名为Jadx的开源APK和DEX反编译器:https://sourceforge.net/projects/jadx/files/ 它也有在线版本:http://www.javadecompilers.com/apk - Andrew Rukin

2

不好意思打扰一下,我刚刚创建了一个开源软件包,用于管理APK反编译过程,网址是https://github.com/lxdvs/apk2gold

apktool将反编译为Smali代码;我的软件包apk2gold将反编译为Java代码。


1
他想重新编译他的apk文件。尝试重新编译dex2jar apk文件时,祝你好运。另一方面,apktool将重新编译apk文件,并在设备上正常工作 :) - Connor Tumbleson
@Alex Davis,您能否列出在Windows上运行make.sh所需的步骤集?我尝试使用git bash,但出现了一堆错误,指示make.sh未与任何git项目相关联。我下载了win-bash,现在错误与maven bin不存在和未指定JAVA_HOME有关。归根结底:*.sh文件适用于基于Linux或Mac的操作系统。通常在Windows中,有一个等效的*.bat(批处理可执行文件)。在这种情况下,您推荐采取什么方法来解决Windows问题? - iOSAndroidWindowsMobileAppsDev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接