我在android studio中开发了一个应用程序并在我的手机中测试它。我已经格式化了我的电脑,忘记将我的项目保存到某个地方。现在我想恢复我的源代码。我从手机上获取了APK文件(使用adb和其他一些工具)。
我正在使用dex2jar并反编译我的classes.dex文件,但它没有显示我自己的Java类。是否有可能让他们回来?
答案 0 :(得分:1)
您可以轻松地将其反编译为以下精彩教程:
https://futurestud.io/tutorials/how-to-decompile-an-android-app-apk
以下4个简单步骤:
1-解压缩你的apk就像你解压缩任何zip文件一样
2-find classes.dex files
使用dexToJar工具
将它们转换为jar文件4-使用JD-Gui应用程序(windows / ubuntu / mac的availbale)打开jar文件
答案 1 :(得分:0)
这通常由某些混淆器完成,例如Proguard。这意味着,除了别的以外,类的类名将被更改为无意义的名称(例如A / B / C),名称在java类的完全限定路径中仍然是不同的,例如,你可能有多个"" A"不同包中的类,但除此之外,您将多次使用这些类名。在大多数情况下,它不会损害程序的功能,但会使逆向工程变得更加困难。
如果这是您的应用并且您可以重建它,则可以禁用ProGuard或其功能的子集,否则您需要自行对其进行反向工程。