青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 101,  comments - 57,  trackbacks - 0

1.代碼

#include<iostream>

using namespace std;

class A
public:
    
virtual void fun1(){ cout<<"A::fun1"<<endl;}
    
virtual void fun2(){cout<<"A::fun2"<<endl;}
}
;


class B : public A
{     
public:    
    
virtual void fun1(){ cout<<"B::fun1"<<endl;}
    
virtual void fun2(){cout<<"B::fun2"<<endl;}
}
;

void main(){
    
    
void (A::*f1)();  
    
void (A::*f2)();  
    
    A 
*p=new B;
    
    f1 
= &A::fun1;
    f2 
= &A::fun2;
    (p
->*f1)();
    (p
->*f2)();

    printf(
"f1 = %p f2 = %p\n", f1, f2);
    printf(
"B::fun1 = %p, B::fun2 = %p\n"&A::fun1, &A::fun2);
    delete p;
    system(
"pause");
    
}

2.結果
B::fun1
B::fun2
f1 = 004010AA f2 = 004010B4
B::fun1 = 004010AA, B::fun2 = 004010B4

3.解惑
  i. 如果對于為什么f  = A::funx 卻輸出的是B::funx?
  ii. 為什么A::funx = B::funx

 以上兩個問題可以當作是一個,看看匯編就知道了,他們將生成一個虛函數的選擇函數,短小的函數負責選對應虛函數中的位置,根據對象的虛函數表而定,所以....

4.匯編
  debug

0040121E   .  C745 F0 AA104>mov     dword ptr [ebp-10], 004010AA
00401225   .  C745 EC B4104>mov     dword ptr [ebp-14], 004010B4
0040122C   .  8BF4          mov     esi, esp
0040122E   .  8B4D E8       mov     ecx, [ebp
-18]
00401231   .  FF55 F0       call    [ebp-10]
00401234   .  3BF4          cmp     esi, esp
00401236   .  E8 A5870000   call    _chkesp
0040123B   .  8BF4          mov     esi, esp
0040123D   .  8B4D E8       mov     ecx, [ebp
-18]
00401240   .  FF55 EC       call    [ebp-14]
00401243   .  3BF4          cmp     esi, esp
00401245   .  E8 96870000   call    _chkesp
0040124A   .  8B55 EC       mov     edx, [ebp
-14]

0040124D   .  52            push    edx                              ; /<%p>
0040124E   .  8B45 F0       mov     eax, [ebp-10]                    ; |
00401251   .  50            push    eax                              ; |<%p>
00401252   .  68 48404300   push    00434048                         ; |format = "f1 = %p f2 = %p",LF,""
00401257   .  E8 14820000   call    printf                           ; \printf
0040125C   .  83C4 0C       add     esp, 0C
0040125F   .  68 B4104000   push    004010B4                         ; /<%p> = Cplusplu.004010B4
00401264   .  68 AA104000   push    004010AA                         ; |<%p> = Cplusplu.004010AA
00401269   .  68 24404300   push    00434024                         ; |format = "B::fun1 = %p, B::fun2 = %p",LF,""
0040126E   .  E8 FD810000   call    printf                           ; \printf

00402300 > > \8B01          mov     eax, [ecx]                     // 第一個虛函數
00402302   .  FF20          jmp     [eax]
00402304      CC            int3
00402305      CC            int3
00402306      CC            int3
00402307      CC            int3
00402308      CC            int3
00402309      CC            int3
0040230A      CC            int3
0040230B      CC            int3
0040230C      CC            int3
0040230D      CC            int3
0040230E      CC            int3
0040230F      CC            int3
00402310 > >  8B01          mov     eax, [ecx]          // 第二個虛汗數
00402312   .  FF60 04       jmp     [eax+4]



release

00401019  |> \33F6          xor     esi, esi
0040101B  
|>  8BCE          mov     ecx, esi
0040101D  
|.  E8 5E060000   call    00401680
00401022  |.  8BCE          mov     ecx, esi
00401024  |.  E8 67060000   call    00401690
00401029  |.  68 90164000   push    00401690                         ;  Entry address
0040102E  
|.  68 80164000   push    00401680                         ;  Entry address
00401033  |.  68 C4F04000   push    0040F0C4                         ;  ASCII "f1 = %p f2 = %p",LF
00401038  |.  E8 2D310000   call    0040416A
0040103D  
|.  83C4 0C       add     esp, 0C
00401040  |.  68 90164000   push    00401690                         ;  Entry address
00401045  |.  68 80164000   push    00401680                         ;  Entry address
0040104A  
|.  68 A8F04000   push    0040F0A8                         ;  ASCII "B::fun1 = %p, B::fun2 = %p",LF
0040104F  
|.  E8 16310000   call    0040416A

00401680   $  8B01          mov     eax, [ecx]
00401682   .  FF20          jmp     [eax]
00401684      CC            int3
00401685      CC            int3
00401686      CC            int3
00401687      CC            int3
00401688      CC            int3
00401689      CC            int3
0040168A      CC            int3
0040168B      CC            int3
0040168C      CC            int3
0040168D      CC            int3
0040168E      CC            int3
0040168F      CC            int3
00401690   $  8B01          mov     eax, [ecx]
00401692   .  FF60 04       jmp     [eax+4]


posted on 2008-03-08 18:12 margin 閱讀(318) 評論(0)  編輯 收藏 引用 所屬分類: C/C++ 、逆向工程
<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用鏈接

留言簿

隨筆檔案

文章分類

文章檔案

收藏夾

常去的壇子

  • CVC電腦病毒論壇
  • 很多人說我是AV,我告訴他們:別瞧不起人,我們也能創造價值
  • 安全焦點
  • 黑客聚集的地方,一般是好酒最多的地方...
  • 看雪論壇
  • 國內最強的加密解密論壇,成醉其中經常夜不歸宿
  • 驅動開發論壇
  • 厭倦了啤的朋友們,來我們來整點白的...痛痛快快的BSOD也好過隔鞋瘙癢!

我的朋友

  • Sen的blog
  • IDE方面資深的受害者...經常為一個變量的定義找不著北的痛苦程序員(深表同情)
  • 老羅的blog
  • 良師益友,千年水牛,引擎猛男,分析怪獸,墨鏡酷哥,臺球高手....

搜索

  •  

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲免费观看高清在线观看| 女女同性精品视频| 猫咪成人在线观看| 久久高清一区| 国产精品高潮呻吟| 最新亚洲一区| 禁断一区二区三区在线| 亚洲免费视频成人| 中文亚洲免费| 欧美国产专区| 欧美成人r级一区二区三区| 国产日韩亚洲欧美综合| 99国产精品99久久久久久| 亚洲精品综合久久中文字幕| 久久精品噜噜噜成人av农村| 亚洲欧美资源在线| 国产精品日韩欧美| 一区二区三区福利| 亚洲一区二区动漫| 欧美日韩视频不卡| 一本一道久久综合狠狠老精东影业| 亚洲国产精品毛片| 老司机午夜精品| 欧美国产一区二区| 亚洲日韩中文字幕在线播放| 老色批av在线精品| 欧美成人国产| 亚洲精品乱码久久久久久| 欧美mv日韩mv国产网站| 欧美a级在线| 亚洲欧洲在线免费| 欧美国产日本在线| 一本高清dvd不卡在线观看| 99国产精品国产精品毛片| 欧美全黄视频| 亚洲视频免费在线观看| 亚洲欧美另类在线| 国产亚洲毛片| 久久久蜜桃一区二区人| 欧美v日韩v国产v| 91久久精品国产91久久性色tv| 久久嫩草精品久久久精品一| 欧美激情一区二区三区四区| 99re8这里有精品热视频免费 | 亚洲深夜福利网站| 亚洲欧洲av一区二区三区久久| 国产欧美激情| 久久精品国产在热久久| 欧美福利专区| 亚洲一区二区三区精品在线| 国产精品美女久久福利网站| 欧美一区二区日韩| 欧美高清一区二区| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 久久人人97超碰精品888| 亚洲国产成人在线| 亚洲欧美第一页| 国外精品视频| 欧美日韩免费一区二区三区| 亚洲一区二区三区午夜| 美国十次成人| 亚洲午夜精品| 一区二区视频欧美| 欧美日韩一区二区三区| 久久久午夜电影| 国产精品99久久久久久有的能看| 久久久国产视频91| 中文日韩电影网站| 亚洲盗摄视频| 国产噜噜噜噜噜久久久久久久久 | 亚洲经典在线看| 国产精品久久影院| 麻豆国产va免费精品高清在线| 99天天综合性| 欧美大片免费观看在线观看网站推荐 | 国产欧美日韩精品一区| 欧美黄免费看| 久久久久久综合| 亚洲小说欧美另类社区| 欧美成人自拍| 宅男噜噜噜66一区二区| 1000精品久久久久久久久| 欧美日韩亚洲一区二区三区| 欧美影视一区| 一级成人国产| 欧美r片在线| 久久久精品动漫| 中文欧美日韩| 亚洲二区免费| 国产精品一区免费观看| 欧美精品久久久久久久久久| 欧美综合国产精品久久丁香| 久久久久国产精品午夜一区| 亚洲一区二区三区四区视频| 亚洲国产一区二区a毛片| 国产欧美高清| 欧美片网站免费| 久久久最新网址| 正在播放日韩| 亚洲精品色婷婷福利天堂| 欧美一级片一区| 亚洲最新视频在线播放| 亚洲国产合集| 狠狠爱综合网| 国产农村妇女精品一二区| 欧美啪啪成人vr| 欧美成人午夜剧场免费观看| 久久国产直播| 亚洲欧美在线网| 一区二区日韩| 亚洲影视综合| 亚洲一区二区三区视频播放| 99精品视频免费观看| 亚洲激情视频在线| 亚洲国产第一页| 欧美一区二区成人| 性xx色xx综合久久久xx| 亚洲最新视频在线| 亚洲作爱视频| 国产精品99久久久久久白浆小说| 亚洲精品国产精品国自产观看 | 国产日韩精品一区| 国产精品一区2区| 国产精品a久久久久久| 国产精品久久久久永久免费观看 | 国产日韩三区| 国产主播喷水一区二区| 激情婷婷亚洲| 在线国产精品一区| 亚洲国产日韩在线| 亚洲人成7777| 9色精品在线| 亚洲欧美另类在线观看| 亚洲一区二区视频在线| 欧美一区二区三区四区在线| 欧美一级免费视频| 久久久久国产精品www| 久久久人成影片一区二区三区| 欧美在线日韩在线| 久久视频在线看| 亚洲成色999久久网站| 亚洲日本va午夜在线电影| 日韩一二在线观看| 亚洲欧美在线另类| 欧美成人一区二区| 欧美日韩一二三四五区| 国产日韩一区二区三区在线播放| 国产香蕉久久精品综合网| 伊人成人在线| 一区二区三区欧美| 久久综合九色综合欧美狠狠| 亚洲第一精品久久忘忧草社区| 日韩午夜在线电影| 午夜精品理论片| 欧美成人精品在线视频| 国产精品久久久亚洲一区 | 久久精品国产久精国产思思| 玖玖玖国产精品| 亚洲黄色一区二区三区| 亚洲女人av| 免费成人高清| 国产精品成人午夜| 国产亚洲欧美一区| 99国产精品一区| 久久久久中文| 亚洲激情av| 欧美亚洲日本一区| 欧美激情二区三区| 国产欧美日韩麻豆91| 亚洲理论在线| 亚洲天堂男人| 91久久国产综合久久| 欧美中文在线视频| 欧美日本国产在线| 在线观看日韩| 久久se精品一区二区| 91久久极品少妇xxxxⅹ软件| 久久精品免费观看| 国产精品第一页第二页第三页| 在线观看一区| 久久成人精品无人区| 亚洲精品一区二区三| 久久免费高清| 国产嫩草一区二区三区在线观看 | 麻豆91精品| 一个人看的www久久| 欧美a一区二区| 精久久久久久久久久久| 欧美亚洲综合在线| 亚洲免费不卡| 欧美激情一区二区三区全黄| 精品动漫3d一区二区三区免费| 欧美一区二区三区成人| 亚洲日本成人女熟在线观看| 久久一综合视频| 国内精品福利| 久久不射网站| 午夜精品成人在线| 国产精品a级| 亚洲一区二区三区精品动漫|