我正在研究dexdump。现在,有一个让我困惑的问题。 当您查看dexdump结果时,您会在代码中找到“vtable”,如下所示:
000854: fa20 a900 4300 |0000: +invoke-super-quick {v3, v4}, [00a9] // vtable #00a9
00085a: 1500 037f |0003: const/high16 v0, #int 2130903040 // #7f03
00085e: f820 ef00 0300 |0005: +invoke-virtual-quick {v3, v0}, [00ef] // vtable #00ef
000864: 1500 057f |0008: const/high16 v0, #int 2131034112 // #7f05
000868: f820 7200 0300 |000a: +invoke-virtual-quick {v3, v0}, [0072] // vtable #0072
00086e: 0c00 |000d: move-result-object v0
有人知道“vtable”实际链接到了什么? 有没有关于此的文件?
答案 0 :(得分:1)
vtable可能代表“虚拟桌子”。它是一种实现虚函数的方法(如果你因为android在这里你正在使用java,在java中所有函数都是虚拟的) - 所有虚函数都在一个函数指针数组中。所以vtable#00a9可能意味着将00a9偏移到虚拟表中。