我已经使用apktool反编译了一个apk代码。我得到的代码包含 的setContentView(2130903087); 我的问题是如何从这一行找到布局名称。
答案 0 :(得分:1)
首先将此十进制数转换为十六进制数。然后,在反编译dex文件后,您将在反编译代码中获得R.java文件。在搜索十六进制数字时,您将获得布局文件。
答案 1 :(得分:1)
Apktool使用smali来反汇编应用程序。您编写的代码行不是由apktool生成的。
让我们拿一个示例应用程序并对其进行解码。 (apktool d test.apk
)。然后让我们看看我们知道正在使用setContentView
的文件。
const v0, 0x7f040037
invoke-virtual {p0, v0}, Lcom/android/deskclock/Screensaver;->setContentView(I)V
如你所见。使用布局的资源ID的十六进制等效值填充v0
。所以现在我们只需grep
来获取该ID。
res/values/public.xml: <public type="layout" name="desk_clock_saver" id="0x7f040037" />
现在我们知道布局是desk_clock_saver
。所以我们可以在res/layout
中查看它。
ibotpeaches@relic:~/test$ file res/layout/desk_clock_saver.xml
res/layout/desk_clock_saver.xml: XML document text
我们有它。