Android反编译奇怪的问题
Android decomplie strange problems
我发现了一个关于 Android 反编译的奇怪问题。
为了研究,我通过 apktool 和 dex2jar 反编译了一个 Android apk,一切似乎都正常,但是当我使用 JD-GUI打开反编译后的.jar文件,里面找不到AndroidActivityclass文件,感兴趣的是我看到 AndroidManifest.xml 文件,里面写了一些 activity 路径,我保证我找不到这些 classes 文件那些路径,有什么问题呢?怎么办?
--[更新]--
我发现不仅 Activity class 文件不存在,而且一些自定义小部件 class 文件也不存在,我看到一些布局 xml 使用了自定义小部件,但找不到它们真实文件。真的有什么方法可以隐藏 class 文件以防止其他人反编译吗?
反汇编 .dex
文件仅包含 Java 源代码。此文件通常是 classes.dex
,但对于多 dex 应用程序,可以存在于 classes#.dex
中的任何位置,其中 #
是某个数字 >= 1
.
您不会在 .dex
文件中找到 AndroidManifest.xml
和各种布局文件。它们位于其他地方(resources.arsc
、AndroidManifest.xml
和 res/
),并且只能使用 apktool 之类的东西解码为人类可读的形式。
此外,您无法隐藏任何内容。如果应用程序在 Android 上运行,则很有可能可以对其进行解码。混淆可以提供帮助,但不会阻止查看源代码。
我发现了一个关于 Android 反编译的奇怪问题。
为了研究,我通过 apktool 和 dex2jar 反编译了一个 Android apk,一切似乎都正常,但是当我使用 JD-GUI打开反编译后的.jar文件,里面找不到AndroidActivityclass文件,感兴趣的是我看到 AndroidManifest.xml 文件,里面写了一些 activity 路径,我保证我找不到这些 classes 文件那些路径,有什么问题呢?怎么办?
--[更新]--
我发现不仅 Activity class 文件不存在,而且一些自定义小部件 class 文件也不存在,我看到一些布局 xml 使用了自定义小部件,但找不到它们真实文件。真的有什么方法可以隐藏 class 文件以防止其他人反编译吗?
反汇编 .dex
文件仅包含 Java 源代码。此文件通常是 classes.dex
,但对于多 dex 应用程序,可以存在于 classes#.dex
中的任何位置,其中 #
是某个数字 >= 1
.
您不会在 .dex
文件中找到 AndroidManifest.xml
和各种布局文件。它们位于其他地方(resources.arsc
、AndroidManifest.xml
和 res/
),并且只能使用 apktool 之类的东西解码为人类可读的形式。
此外,您无法隐藏任何内容。如果应用程序在 Android 上运行,则很有可能可以对其进行解码。混淆可以提供帮助,但不会阻止查看源代码。