pdf , , V++, .
class three,
00A516BD cmp dword ptr [ebp+8],0
00A516C1 je three::three+60h (0A516F0h)
00A516C3 mov eax,dword ptr [this]
00A516C6 mov dword ptr [eax],offset three::`vbtable' (0A57828h) => 4 Bytes
00A516CC mov ecx,dword ptr [this]
00A516CF add ecx,8
00A516D2 call one::one (0A51253h)
00A516D7 or dword ptr [ebp-0D4h],1
00A516DE mov ecx,dword ptr [this]
00A516E1 add ecx,10h
00A516E4 call two::two (0A512BCh)
00A516E9 or dword ptr [ebp-0D4h],2
00A516F0 mov eax,dword ptr [this]
00A516F3 mov ecx,dword ptr [eax]
00A516F5 mov edx,dword ptr [ecx+4]
00A516F8 mov eax,dword ptr [this]
00A516FB mov dword ptr [eax+edx],offset three::`vftable' (0A57820h) => 4 Bytes
00A51702 mov eax,dword ptr [this]
00A51705 mov ecx,dword ptr [eax]
00A51707 mov edx,dword ptr [ecx+8]
00A5170A mov eax,dword ptr [this]
00A5170D mov dword ptr [eax+edx],offset three::`vftable' (0A57814h) => 4 Bytes
00A51714 mov eax,dword ptr [this]
00A51717 pop edi
00A51718 pop esi
00A51719 pop ebx
00A5171A add esp,0D8h
,
4 (vbtable)
2 4 * 2 = 8 , (vftable)
one::_a 4
two::_a 4
, 20 .
pdf (. 17) :
" Visual ++, P vftable-, T, vftable, vfptr, T."