谢谢!
#1 楼
使用apktool
可以反编译程序的资源。您还可以使用JEB来查看资源ID。在
res/values
中,您可以使用public.xml中的名称(或类似名称,例如publics.xml或name.xml)找到ID。就是这样。PS:搜索之前,您需要将32位资源ID转换为HEX。
#2 楼
关云超的答案是正确的。例如,我最近解压缩了一个应用程序(zaka.com.amperemeter-1.apk,是的,它是zaka.com,不是应该的com.zaka)。改善Google翻译所造成的不良德语翻译。 br />unzip/procyon/gluapps/Ampere/meter/Activity/MainActivity.java:240
return this.getString(2131099670)
还,procyon给了我一个R.java,它的名字就是这个数字:
从反编译中获取R.java源代码。如果没有,
apktool d zaka.com.amperemeter-1.apk
会在smali文件中为您提供几个具有相同编号的文件,以十六进制表示:unzip/procyon/gluapps/Ampere/meter/R.java:909
public static final int Usb_plug_type = 2131099670;
这些基本上与反编译的Java文件。此外:
work/smali/gluapps/Ampere/meter/R$string.smali:20
.field public static final Usb_plug_type:I = 0x7f060016
work/smali/gluapps/Ampere/meter/Activity/MainActivity.smali:477
const v1, 0x7f060016
这是映射到语言相关文件中实际的,翻译后的字符串的键:
work/res/values/public.xml:473
<public type="string" name="Usb_plug_type" id="0x7f060016" />
因此,对于正常的apk,如果正确使用unzip / dex2jar / decompiler / apktool,那么一切都应该存在。如果不是,那么最好提供指向apk的链接,因为您的apk可能会发生一些奇怪的事情,但是除非您给我们机会查看特定的apk,否则无法告诉。
评论
为什么有人给我-1?在res / values中,有很多xml。只需打开它们,您将找到所有ID。
–迷雾笼罩
16 May 25'3:59
谢谢。除了JEB,是否还有其他工具(最好是免费的)可以通过映射提取此xml文件?
–user1118764
16年5月25日在6:35
@ user1118764我已经说过apktool也可以做到这一点。
–迷雾笼罩
16年5月25日在8:02
我已经使用apktool来获取资源,但是我只看到提供字符串名称和值的XML文件,而不是字符串名称与资源ID之间的映射。
–user1118764
16年5月25日在8:36
@ user1118764那里有很多XML文件,只需打开它们即可。您可以使用计算器将ID转换为HEX,然后在这些文件中进行搜索。
–迷雾笼罩
16年5月25日在8:39