我反向工程(With1,With2和手动)从谷歌Play商店下载一些Android APK文件,但没有得到确切的提示使用proguard。如何验证Android APK是否启用了Proguard?
有什么方法可以知道哪个Android APK文件在反向工程代码中具有proguard使用?
而且
是什么ProGuard的与无ProGuard的使用反向工程的代码有什么区别?
我在逆向工程代码得到了什么是:
- 在一些APK文件的代码中,类名是一样的a,b,c,d和他们的包名也以同样的方式。代码在反编译后非常复杂,不易理解。
- 某些APK文件具有易于格式化的代码。他们反编译的代码看起来像正常的代码结构一样。类名和包名是可读的,但在代码中,一些函数具有不一致性代码。
如果APK使用Android Studio进行了签名,那么默认情况下会启用职业后卫,因为我知道为什么所有APK都没有相同的反编码代码结构?
您是否阅读过:https://developer.android.com/studio/build/shrink-code.html,特别是标有'自定义代码保留的代码段' –
您的意思是说,使用minifyEnabled true将生成代码结构像a,b,c,d ...格式化?或者这是由于Proguard的使用? –
首先,Proguard默认不会为已签名的apk启用,您必须手动启用它。现在创建两个具有相同代码的项目。在第一个代码启用Proguard,并在其他禁用它。通常,启用了Proguard的apk,很难找出类的正确名称。假设你的类名是MyFirstAndroidClass,那么在启用Proguard之后,你将会看到类的名字在反编译之后被改变。 启用Proguard后,您可以在该文件中找到所有参考。 app/build/outputs/mapping/debug/mapping.txt – Shekhar