我需要从 apk 文件中提取源代码。我知道 apktool 并且已经使用过很多次。该方法的问题是提取的代码稍有更改,并且所有资源加载都具有静态值,例如加载布局。我也有 res 文件夹,但我无法确定要在哪里加载哪个布局。
我需要可靠的解决方案,该解决方案还可以使用生成的 R 提取完整的源代码。我认为这是可能的。
以您想要的方式执行此操作实际上是不可能的。
原因如下:.apk
是链中的最终工件:java源(.java
)> java字节码(.class
)> dalvik字节码(.dex
)>应用程序包(.apk
)
您确实可以无损失地提取(类似于从 中提取.dex
,因为只是zip 存档),但这不会帮助您获得相同的确切来源,因为从to然后 to的编译是不可逆的(在一般情况下)。.apk
.class
.jar
.jar
.java
.class
.dex
更新:即使是用于 java 字节码的现代反编译工具(如 jad)有时也无法生成有效的字节码源(发生在我身上几次),更不用说在编译过程中更加“扭曲”的 dalvik 字节码。