classes.dex 文件不包含我的 java 类
classes.dex file does't contain my java classes
我在 android 工作室开发了一个应用程序,并在我的 phone 中对其进行了测试。我格式化了我的电脑,却忘了将我的项目保存到某个地方。现在我想取回我的源代码。我从 phone 获取 APK 文件(通过使用 adb 和其他一些工具)。
我正在使用 dex2jar 并反编译我的 classes.dex 文件,但它没有显示我自己的 Java 类。有可能让他们回来吗?
你可以很容易地反编译它,下面是一个很棒的教程:
https://futurestud.io/tutorials/how-to-decompile-an-android-app-apk
4 个简单的步骤如下:
1- 像解压任何 zip 文件一样解压 apk
2-查找 classes.dex 个文件
3-使用 dexToJar 工具将它们转换为 jar 文件
4- 使用 JD-Gui 应用程序打开 jar 文件(适用于 windows/ubuntu/mac)
这通常是由一些混淆器完成的,例如Proguard。这意味着,除其他外,您的 classes 的 class 名称将更改为无意义的名称(例如 A/B/C),这些名称在完全限定路径中仍然会有所不同a java class,例如您可能在不同的包中有多个“"A" classes,但除此之外,您将多次使用这些 class 名称。在大多数情况下,它不会损害程序的功能,但这会使逆向工程变得更加困难。
如果这是您的应用并且您可以重建它,则可以禁用 ProGuard 或其部分功能,否则您将需要自行对其进行逆向工程。
我在 android 工作室开发了一个应用程序,并在我的 phone 中对其进行了测试。我格式化了我的电脑,却忘了将我的项目保存到某个地方。现在我想取回我的源代码。我从 phone 获取 APK 文件(通过使用 adb 和其他一些工具)。
我正在使用 dex2jar 并反编译我的 classes.dex 文件,但它没有显示我自己的 Java 类。有可能让他们回来吗?
你可以很容易地反编译它,下面是一个很棒的教程:
https://futurestud.io/tutorials/how-to-decompile-an-android-app-apk
4 个简单的步骤如下:
1- 像解压任何 zip 文件一样解压 apk
2-查找 classes.dex 个文件
3-使用 dexToJar 工具将它们转换为 jar 文件
4- 使用 JD-Gui 应用程序打开 jar 文件(适用于 windows/ubuntu/mac)
这通常是由一些混淆器完成的,例如Proguard。这意味着,除其他外,您的 classes 的 class 名称将更改为无意义的名称(例如 A/B/C),这些名称在完全限定路径中仍然会有所不同a java class,例如您可能在不同的包中有多个“"A" classes,但除此之外,您将多次使用这些 class 名称。在大多数情况下,它不会损害程序的功能,但这会使逆向工程变得更加困难。
如果这是您的应用并且您可以重建它,则可以禁用 ProGuard 或其部分功能,否则您将需要自行对其进行逆向工程。