0

我正在对 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”实际链接到什么吗?有这方面的文件吗?

4

1 回答 1

1

vtable 可能代表“虚拟表”。它是一种实现虚函数的方式(如果你要说你正在使用java,因为这里有android,在java中所有函数都是虚拟的)——所有的虚函数都在一个函数指针数组中。所以 vtable #00a9 可能意味着偏移 00a9 到虚拟表中。

于 2013-01-17T05:29:43.233 回答