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

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>
            欧美激情久久久久久| 亚洲第一中文字幕| 一本色道久久综合一区| 亚洲国产欧美日韩另类综合| 欧美一区二区三区在线观看| 香蕉免费一区二区三区在线观看| 国产精品免费区二区三区观看| 午夜精品久久久久久久久久久久| 亚洲一二三区精品| 国产一区二区在线观看免费播放| 久久久噜噜噜| 美女成人午夜| 亚洲欧美日韩在线| 欧美在线短视频| 最近看过的日韩成人| 妖精成人www高清在线观看| 国产精品日韩| 免费成人在线观看视频| 欧美乱妇高清无乱码| 亚洲永久视频| 久久视频国产精品免费视频在线| 99re66热这里只有精品4| 一本久久a久久精品亚洲| 国产亚洲人成网站在线观看| 免费在线观看日韩欧美| 欧美视频三区在线播放| 国产欧美日韩麻豆91| 欧美77777| 国产精品成人一区二区三区夜夜夜 | 欧美日韩1区2区| 欧美在线地址| 欧美精品一区二区三区视频| 先锋影音网一区二区| 你懂的视频欧美| 欧美在线视频免费播放| 欧美高清在线视频| 久久综合伊人77777尤物| 欧美日韩在线影院| 欧美gay视频| 国产亚洲欧美一区| 亚洲视屏在线播放| 亚洲精品资源| 美女尤物久久精品| 葵司免费一区二区三区四区五区| 欧美色道久久88综合亚洲精品| 乱中年女人伦av一区二区| 国产精品萝li| 日韩小视频在线观看| 亚洲欧洲在线看| 久久精品视频在线| 久久九九国产精品| 国产精品久久久久久久久久免费 | 国产一区视频在线观看免费| 亚洲一区二区三区四区在线观看 | 在线不卡视频| 欧美一级理论片| 欧美一区二区免费观在线| 欧美日韩大片一区二区三区| 欧美国产国产综合| **欧美日韩vr在线| 久久婷婷久久| 老司机成人网| 精品成人一区| 久久天堂成人| 欧美高清不卡在线| 亚洲黄色小视频| 蜜臀久久久99精品久久久久久| 蜜臀91精品一区二区三区| 激情成人亚洲| 老色鬼精品视频在线观看播放| 蜜臀av国产精品久久久久| 在线观看福利一区| 久久婷婷亚洲| 亚洲二区三区四区| 99精品视频免费在线观看| 欧美日韩和欧美的一区二区| 日韩网站在线观看| 午夜久久99| 国内精品美女av在线播放| 久久久最新网址| 亚洲国产国产亚洲一二三| 一区二区三区国产精品| 欧美午夜剧场| 新狼窝色av性久久久久久| 久久综合网hezyo| 亚洲伦理精品| 午夜精品久久久久久久久久久久| 国产欧美一区二区色老头| 欧美一级黄色网| 蜜臀99久久精品久久久久久软件| 亚洲国产一区视频| 欧美特黄a级高清免费大片a级| 亚洲视频一二三| 久久免费观看视频| 亚洲理论电影网| 国产欧美精品在线播放| 久久久久亚洲综合| 亚洲精品国产精品国产自| 亚洲欧美中文日韩在线| 韩国成人福利片在线播放| 免费久久久一本精品久久区| 日韩亚洲综合在线| 久久久午夜精品| 一区二区三区国产精华| 国产在线不卡视频| 欧美激情精品| 欧美在线免费视频| 亚洲精品乱码久久久久| 久久精品国产亚洲一区二区| 亚洲国产精品久久久久婷婷884 | 久久天堂国产精品| 亚洲一二三区在线观看| 欧美xxxx在线观看| 先锋影音一区二区三区| 日韩午夜电影| 在线看片成人| 国产日韩欧美夫妻视频在线观看| 亚洲免费观看| 蜜臀va亚洲va欧美va天堂| 亚洲一级二级| 亚洲精品一区二区三区不| 国产午夜精品美女视频明星a级| 欧美精品入口| 美女视频黄 久久| 欧美一区亚洲二区| 亚洲欧美日韩国产中文| 99视频超级精品| 亚洲国产日韩在线一区模特| 裸体丰满少妇做受久久99精品| 亚洲欧美日韩中文播放| 在线亚洲观看| 一本久道久久综合婷婷鲸鱼| 亚洲电影第三页| 今天的高清视频免费播放成人| 国产精品呻吟| 国产精品爽爽ⅴa在线观看| 欧美日韩一本到| 欧美激情一二三区| 欧美国产日本高清在线| 卡一卡二国产精品| 久久中文久久字幕| 久久综合婷婷| 噜噜噜91成人网| 美女黄毛**国产精品啪啪| 久久天堂国产精品| 老鸭窝91久久精品色噜噜导演| 久久免费国产精品| 久久综合色88| 欧美韩国在线| 欧美日韩中文精品| 国产精品久久激情| 国产欧美在线视频| 国内激情久久| 亚洲第一精品电影| 亚洲精品国产品国语在线app| 亚洲美女av在线播放| 夜久久久久久| 亚洲欧美日韩在线一区| 久久精品导航| 免费欧美日韩| 亚洲乱码精品一二三四区日韩在线| 日韩视频在线一区二区三区| 亚洲一二三区在线| 欧美主播一区二区三区| 裸体一区二区三区| 欧美午夜电影网| 国产精品美腿一区在线看| 国产一区二区三区在线免费观看| 亚洲电影免费观看高清完整版在线| 亚洲大胆美女视频| 亚洲一区二区日本| 久久久久久久综合日本| 亚洲高清av| 亚洲一区综合| 免费日韩成人| 国产精品嫩草影院av蜜臀| 韩国三级在线一区| 一本到12不卡视频在线dvd| 欧美一二三区精品| 欧美国产精品人人做人人爱| 99成人精品| 久久久激情视频| 欧美性猛交视频| 影音先锋成人资源站| 中日韩美女免费视频网址在线观看| 午夜在线成人av| 亚洲国产欧美在线人成| 亚洲欧美精品| 欧美剧在线观看| 国产一区二区三区免费不卡 | 在线中文字幕一区| 玖玖精品视频| 亚洲午夜日本在线观看| 欧美国产日本| 在线播放中文字幕一区| 西西人体一区二区| 99视频精品| 欧美大片网址| 永久域名在线精品| 久久国产高清|