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

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 閱讀(312) 評論(0)  編輯 收藏 引用 所屬分類: C/C++逆向工程
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿

隨筆檔案

文章分類

文章檔案

收藏夾

常去的壇子

  • 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>
            麻豆国产va免费精品高清在线| 亚洲影视综合| 亚洲视频中文| 欧美电影专区| 亚洲片在线观看| 久久蜜桃av一区精品变态类天堂| 亚洲精品小视频在线观看| 欧美一区激情| 午夜精品区一区二区三| 99国产精品私拍| 欧美三级特黄| 国产精品视频一二三| 亚洲亚洲精品三区日韩精品在线视频| 亚洲电影免费观看高清完整版| 欧美一区二区福利在线| 亚洲欧美文学| 精品成人在线观看| 欧美极品aⅴ影院| 一区二区日本视频| 亚洲欧美自拍偷拍| 在线播放一区| 亚洲精品一二三| 亚洲午夜精品久久久久久app| 国产精品久久久久久亚洲调教 | 国产精品每日更新| 蜜臀a∨国产成人精品| 欧美福利电影网| 欧美日韩亚洲免费| 欧美在线啊v一区| 一本大道久久a久久精二百| 国产欧美一区二区精品仙草咪| 久久精品在线| 国产精品国产自产拍高清av王其 | 欧美福利在线观看| 午夜精品国产更新| 午夜精品www| 欧美天天在线| 日韩亚洲国产欧美| 男人插女人欧美| 国产免费亚洲高清| 欧美午夜视频| 欧美日韩伊人| 亚洲视频高清| 国产欧美91| 亚洲综合日韩在线| 欧美人与禽性xxxxx杂性| 久久亚洲精品网站| 极品尤物av久久免费看| 99国产精品99久久久久久粉嫩| 欧美α欧美αv大片| 黄色成人在线观看| 羞羞色国产精品| 亚洲在线成人精品| 亚洲在线观看视频| 亚洲欧美影院| 亚洲自啪免费| 性久久久久久久久| 久久久777| 亚洲福利专区| 一本大道久久a久久精二百| 亚洲午夜极品| 久热精品在线| 亚洲精品视频在线观看免费| 亚洲国内自拍| 欧美日韩一区二区三区在线| 一区二区三区视频在线看| 久久精品亚洲| 99亚洲一区二区| 国产精品女同互慰在线看| 久久久精品一区二区三区| 亚洲福利专区| 国产精品每日更新| 亚洲精品中文字| 国产亚洲激情| 欧美亚洲第一区| 亚洲二区在线视频| 欧美日韩国产影片| 久久国产精品黑丝| 亚洲免费观看高清完整版在线观看| 在线中文字幕日韩| 在线观看一区| 欧美午夜精品| 亚洲成色777777女色窝| 亚洲一级黄色| 一区二区三区视频在线观看| 在线亚洲免费视频| 亚洲国产三级网| 久久综合一区二区| 久久www成人_看片免费不卡| 亚洲人体一区| 亚洲激情第一区| 欧美 亚欧 日韩视频在线| 久久综合婷婷| 欧美区视频在线观看| 久久精品成人一区二区三区蜜臀| 中文在线不卡| 欧美一区二区三区在线播放| 亚洲欧美日韩视频二区| 欧美激情在线免费观看| 葵司免费一区二区三区四区五区| 精品福利电影| 亚洲欧美激情诱惑| 极品少妇一区二区| 国产精品免费看片| 国产日韩免费| 欧美涩涩网站| 欧美与黑人午夜性猛交久久久| 美女精品国产| 国产亚洲女人久久久久毛片| 国产自产v一区二区三区c| 亚洲精品看片| 久久深夜福利免费观看| 久久综合亚州| 国产精品女主播在线观看| 国产亚洲成精品久久| 国产日韩欧美亚洲| 欧美ab在线视频| 一本一本a久久| 亚洲免费电影在线| 国产欧美一区在线| 欧美成人精品激情在线观看| 影音先锋久久精品| 亚洲在线一区二区三区| 黑人巨大精品欧美黑白配亚洲| 狠狠久久五月精品中文字幕| 亚洲午夜日本在线观看| 国产深夜精品| 亚洲激情视频在线| 欧美一区二区三区在线| 亚洲午夜激情网页| 亚洲尤物在线视频观看| 午夜久久久久久久久久一区二区| 欧美一区二区三区四区在线观看| 亚洲欧美日韩成人| 亚洲第一级黄色片| 欧美日韩另类字幕中文| 欧美日韩视频在线一区二区| 国产精品久久久久久久午夜| 亚洲一区亚洲| 欧美成人免费在线| 在线亚洲精品| 亚洲美女电影在线| 午夜精品久久久久久久| 久久亚洲精品网站| 亚洲高清中文字幕| 久久国产福利| 欧美人成网站| 国产精品一区二区黑丝| 99riav1国产精品视频| 欧美激情第9页| 精品91视频| 久久九九免费| 国产字幕视频一区二区| 午夜精品久久久久久久久久久| 欧美在线观看视频| 久久久噜噜噜久久人人看| 久久综合久久久久88| 欧美精品国产| 亚洲欧美怡红院| 久久激情视频免费观看| 中日韩美女免费视频网址在线观看 | 一区二区欧美在线| 欧美日韩第一页| 亚洲人精品午夜在线观看| 久久精品欧美日韩| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产精品一二三视频| 欧美福利一区二区| 亚洲午夜精品视频| 欧美国产一区二区| 久久免费午夜影院| 欧美在线播放| 99xxxx成人网| 国产精品免费一区豆花| 亚洲精选91| 国产日韩欧美综合精品| 国产精品久久久久久久久免费| 夜夜狂射影院欧美极品| 久久福利影视| 欧美色大人视频| 亚洲欧美日韩另类| 亚洲精品中文字幕在线观看| 亚洲男同1069视频| 美日韩精品视频免费看| 日韩一级视频免费观看在线| 国产精品久久久久久户外露出| 国产一区二区无遮挡| 99国产精品久久久久久久久久| 国产老女人精品毛片久久| 在线观看av不卡| 亚洲一区一卡| 欧美1区3d| 国产日产欧产精品推荐色| 亚洲欧洲精品一区二区三区波多野1战4| 国产精品乱码一区二三区小蝌蚪 | 久久精品人人做人人爽电影蜜月| 欧美激情亚洲精品| 欧美在线日韩在线| 欧美性一区二区| 亚洲日本乱码在线观看|