解包一个Android应用程序?
解包一个Android应用程序?
这个问题已经有答案了:
可能是重复问题:
是否有可能有人反编译我的Android apk文件并查看我包中声明的公共变量或常量?
我定义的公共静态常量的共享密钥将会被暴露...
admin 更改状态以发布 2023年5月22日
当您反混淆代码时(这里有一个视频教程,可能会给您提供见解:如何阅读混淆代码),您将能够看到所有固定值,例如
private String key = "Au8aujEWS(jol#9jSd9";
但他们看不到变量名:
private String a = "Au8aujEWS(jol#9jSd9";
通过使用像Sunny提到的工具这样的工具,您将能够获得所有接近其原始状态的代码。
我将举个例子;如果您拥有以下原始代码:
public class MainActivity extends Activity { private String key = "Au8aujEWS(jol#9jSd9"; public void onCreate(Bundle savedInstance) { //Some code here } } public class OtherActivity extends Activity { ... }
编译后,重新反编译成Java代码后,它会看起来像这样:
public class A extends B { private String a = "Au8aujEWS(jol#9jSd9"; public void a (C b) { //Some code here } } public class D extends B { ... }
通过使用有教养的猜测和重构工具,您将能够反混淆代码,因此只要有足够的奉献和辛勤工作,人们就能够看到您的所有代码。
我强烈建议不要完全依赖编码到客户端应用程序中的事物来确保您的安全性。当然,这取决于您的情况的重要性,以不给黑客访问您试图保护的信息的可能性。
是的,可以反编译apk文件。
根据混淆等级的不同,可能需要一些时间,但是一个专注的人最终会反编译它。
你可以尝试以下工具:
资源来源: http://geeknizer.com/decompile-reverse-engineer-android-apk/
更新1
这里还有两个选项:
由@AndrewRukin建议
更新2
另一个工具:jadx