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

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>
            久久这里有精品15一区二区三区 | 亚洲黄色成人| 亚洲综合日韩在线| 国产精品99久久久久久宅男 | 久久免费黄色| 蜜臀久久99精品久久久画质超高清 | 欧美一区二区高清| 久久精品在线观看| 免费91麻豆精品国产自产在线观看| 麻豆成人精品| 日韩视频免费看| 亚洲欧美制服另类日韩| 欧美一区二区三区日韩视频| 久久久久久尹人网香蕉| 欧美日韩第一区日日骚| 国产精品日韩一区二区三区| 国产一区二区精品久久| 在线观看欧美亚洲| 一区二区久久| 久久婷婷人人澡人人喊人人爽 | 亚洲欧美日韩国产| 久久精品一区二区三区四区 | 欧美一区二区在线免费播放| 久久综合网hezyo| 亚洲人成艺术| 欧美在线观看一区二区三区| 久久嫩草精品久久久精品| 欧美日韩999| 狠狠色狠狠色综合日日小说| 亚洲黄色尤物视频| 久久精品人人做人人综合| 国产欧美一区二区精品性色| 亚洲高清视频的网址| 亚洲欧美欧美一区二区三区| 免费观看久久久4p| 亚洲午夜精品国产| 欧美成人中文| 国产欧美精品日韩精品| 亚洲精选一区| 老**午夜毛片一区二区三区| 亚洲一级一区| 欧美日韩亚洲一区| 亚洲剧情一区二区| 另类激情亚洲| 欧美在线观看你懂的| 国产精品日韩欧美一区二区| 99精品黄色片免费大全| 久久中文久久字幕| 亚洲欧美成人一区二区在线电影| 欧美日韩国产成人在线91| 亚洲第一黄色| 另类酷文…触手系列精品集v1小说| 在线亚洲美日韩| 欧美精品97| 亚洲人午夜精品免费| 欧美顶级大胆免费视频| 久久午夜av| 在线不卡欧美| 久久夜色精品国产| 久久黄金**| 黄色亚洲免费| 欧美1区2区| 欧美mv日韩mv国产网站| 亚洲精品一区二区三区蜜桃久| 老司机一区二区三区| 久久裸体艺术| 91久久精品一区| 亚洲国产精品久久91精品| 欧美刺激午夜性久久久久久久| 亚洲美女尤物影院| 日韩视频免费观看高清在线视频| 欧美三级不卡| 久久xxxx精品视频| 久久久久久久精| 在线精品高清中文字幕| 欧美高清在线精品一区| 欧美另类高清视频在线| 亚洲一区国产视频| 欧美在线首页| 亚洲国产免费| 亚洲美女黄色| 国产视频亚洲精品| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久综合一区二区| 99国内精品| 午夜免费在线观看精品视频| 国语自产精品视频在线看抢先版结局 | 亚洲自拍三区| 欧美一级成年大片在线观看| 国产在线观看精品一区二区三区| 免费不卡在线观看av| 欧美激情第一页xxx| 午夜久久美女| 巨乳诱惑日韩免费av| 日韩特黄影片| 亚洲欧美日韩天堂| 亚洲欧洲在线观看| 亚洲综合第一页| 亚洲电影免费观看高清完整版在线 | 亚洲国产精品ⅴa在线观看| 欧美久久久久| 欧美在线地址| 欧美成人有码| 欧美一区二区三区免费视| 久久一区免费| 欧美一站二站| 欧美激情精品久久久久久黑人| 亚洲欧美日韩在线一区| 久久午夜色播影院免费高清| 亚洲图片你懂的| 久久久久亚洲综合| 欧美一区日本一区韩国一区| 欧美精品免费播放| 嫩草成人www欧美| 国产偷久久久精品专区| 中文国产成人精品| 一本大道久久a久久精品综合| 久久精品视频免费播放| 欧美在线电影| 国产精品裸体一区二区三区| 亚洲经典在线看| 在线国产精品一区| 久久女同互慰一区二区三区| 久久精品一本| 国产欧美日韩另类视频免费观看| 亚洲精品国产无天堂网2021| 亚洲承认在线| 蜜桃av一区二区| 牛牛国产精品| 亚洲电影在线看| 欧美一区深夜视频| 久久激情视频久久| 国产尤物精品| 久久久伊人欧美| 久久综合给合| 在线播放中文字幕一区| 久久人人爽人人爽爽久久| 久久综合九色| 在线日韩电影| 欧美成人精品在线视频| 欧美韩日一区二区| 亚洲精品一区二区三区四区高清| 久久综合伊人77777| 欧美激情第8页| 亚洲最新在线视频| 国产精品高潮久久| 一区二区三区在线观看国产| 亚洲国产高清一区| 亚洲免费不卡| 欧美日本一区二区三区| 亚洲精品久久久久久久久久久久| 亚洲精品日韩激情在线电影 | 国产精品女主播一区二区三区| 艳女tv在线观看国产一区| 亚洲午夜精品久久久久久app| 国产精品啊v在线| 欧美综合77777色婷婷| 欧美激情五月| 午夜激情综合网| 在线成人性视频| 欧美日韩国产综合视频在线观看中文| 亚洲深夜福利| 狼狼综合久久久久综合网| 亚洲日韩欧美视频一区| 欧美亚洲不卡| 久久久精品欧美丰满| 91久久嫩草影院一区二区| 亚洲欧美99| 永久555www成人免费| 欧美日本乱大交xxxxx| 欧美在线播放一区| 最新日韩在线视频| 久久精品盗摄| 夜夜嗨av色一区二区不卡| 国产日韩欧美精品一区| 欧美jizz19hd性欧美| 亚洲欧美国产高清va在线播| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美大片网址| 亚洲自拍另类| 亚洲欧洲一区二区在线播放 | 国产视频在线观看一区二区| 久久久久久久一区二区三区| 亚洲伦理自拍| 女生裸体视频一区二区三区| 亚洲综合导航| 夜夜爽www精品| 91久久精品国产91性色tv| 国产一区二区三区久久 | 午夜日韩在线观看| 亚洲狠狠丁香婷婷综合久久久| 欧美在线观看视频一区二区三区| 亚洲精品久久久久久久久久久久| 国产精品综合不卡av| 欧美另类一区二区三区| 久久免费视频在线| 欧美黄在线观看| 国产精品扒开腿爽爽爽视频| 久久漫画官网| 久久久久九九视频|