2013-01-17 37 views
0

我正在做一些關於dexdump的研究。現在,有一個讓我困惑的問題。 當你看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 

有誰知道什麼是「虛表」,其實相關聯? 有沒有關於這方面的任何文件?

回答

1

vtable可能代表「虛擬表」。它是實現虛擬函數的一種方式(如果你將要說因爲android在這裏而使用java,所有的函數都是虛擬的) - 所有虛函數都在一個函數指針數組中。所以vtable#00a9可能意味着將00a9抵消到虛擬表中。