R.java 转 xml 文件

逆向工程 反编译 安卓 爪哇
2021-07-07 01:04:03

如何R.java工作?在编译的 .apk 文件中,它是否包含编译前来自 XML 文件的所有常量?我使用多个 Java RE 工具反编译了一个应用程序,并用于apktool提取资源(xml 文件、图像等)。但是,在Eclipse中重建项目时,EclipseR.java生成的(在gen文件夹中)R.java与反编译的应用程序中的原始不匹配这在反转 Android 应用程序时是否常见?在这种情况下,原始 R.java 包含与其余代码一致的字段。但是,这在生成的 R.java 中不存在,因此出现此错误。

我使用的反编译器是

1) JEB(商业)

2)jadx(开源)

在此处输入图片说明

1个回答

jadx 创建的 R.java 文件是作为编译后的资源 id 和代码中提到的资源名称之间的引用而存在的。

如果您希望重新编译它,可以通过创建一个忽略部分前缀并搜索资源名称的脚本来重新创建看起来像原始 xml 文件的内容。一旦它位于 xml 文件中,请指定正确的文件。

而且我认为 apktool 为资源 xml 文件提供了更好的参考。

但是如果你想做的只是做一个小的改变,那么使用 smali 并使用 apktool 将它们重新组合在一起会更快。