首页
社区
课程
招聘
[旧帖] [求助]vc內聯匯編,執行順序怎么控制 0.00雪花
发表于: 2011-7-12 16:17 1307

[旧帖] [求助]vc內聯匯編,執行順序怎么控制 0.00雪花

2011-7-12 16:17
1307
以下代碼寫在DLL的一個對話框的按鍵上,上面的都為全局變量,用作call的參數和地址.
為什么它的執行順序是如下(注釋部分).如果我想從頭到尾一次一次的執行,我該怎么辦?這個問題
我試了好久了,在几個知名的論壇也發了貼,不知道是因為太簡單不想回答,還是我寫得不清楚,至今
我沒有找到答案,郁悶了好几天了.每天在網上找,就是找不到答案啊,謝謝大家

DWORD CallAddress1=0x008ef3a0;
DWORD CallAddress=0x006d44f0;
DWORD BBID=0;
DWORD FUBBID=0;
DWORD ZHUBBID=0;
DWORD fubaoflag=0;
DWORD CallAddress2=0X006D4830;
DWORD CallAddress3=0x00748620;
DWORD CallAddress4=0x00748580;
DWORD CallAddress5=0x006a66f0;
DWORD CallAddress6=0x006A6A90;
DWORD *wupingnumAddress=(DWORD*)0xBFDFB8;
DWORD CallAddress7=0x006a8850;
DWORD TEQIUID=0;

void CS3DHookDlg::OnButton1()
{     
      UpdateData(true);
      
      DWORD Base3=*(DWORD*)(0x008cbeec);
      Base3=*(DWORD*)(Base3+0x10);
      Base3=*(DWORD*)(Base3+0X4*m_ZHUBAOBAO);
      Base3=Base3+0x4;
      DWORD *PP=(DWORD*)Base3;
      DWORD ZHUBBID=*PP;
      
      for(int a=1;a<11;a++)                       
            {
       
             DWORD Base10=*(DWORD*)(0x008cbeec);     
             Base10=*(DWORD*)(Base10+0x10);
             Base10=*(DWORD*)(Base10+0X4*a);
             Base10=Base10+0x4;
             DWORD *ppp=(DWORD*)Base10;
             FUBBID=*ppp;
             CString str;
             str.Format("%d",FUBBID);
             MessageBox(str);      
    1)先執行這里,然后跳到2.再121212十次做完,

             __asm{                              3)再從這里下去到底,執行十次所有的ASM的代碼
             PUSH 0
             PUSH ZHUBBID
             MOV ECX,0X008CA4C0
             CALL CallAddress6
          }

              __asm{                        
              PUSH 0
              PUSH FUBBID
              MOV ECX,0X008CA4C0
              CALL CallAddress6
              }

               __asm{                          
               push 0
               push FUBBID
               push ZHUBBID
               mov ecx,0x008ca4c0
               call CallAddress5
               }

               DWORD Base4=*(DWORD*)(0x008cbee8);   2這里,再跳回1
               Base4=*(DWORD*)(Base4+0x10);
               Base4=*(DWORD*)(Base4+0X4*(a+1));
               Base4=Base4+0x4;
               DWORD *wupingid1=(DWORD*)Base4;
               TEQIUID=*wupingid1;
               MessageBox("222222222222");
       

               __asm{      
               push 1
               push 1
               push TEQIUID  
               push ZHUBBID
               mov ecx,0x008ca4c0
               call CallAddress7
               }

}

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 237
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
你的意思是:为什么是1,2,3,而不是顺序的1,3,2?
2011-7-12 16:23
0
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
这繁体字看起来真麻烦!!!
2011-7-12 16:24
0
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
没明白楼主要表达的意思!!!
2011-7-12 16:25
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我的意思是,為什么是先 10次1 跳到2,2跳到1,中間的3不執行,在最后一下執行10從3開始不包括2
的代碼?為什么是這樣一二一二一二一二一二一二一二一二一二一二,然后三三三三三三三三三三,
這個三不包括二的代碼.
2011-7-12 17:20
0
雪    币: 1149
活跃值: (833)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
6
你是港澳同胞,看着字体就发晕,如果不是,请将字体改一下,这样才有人回答你的问题!
2011-7-12 17:46
0
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
啥一二,啥三三三三,都把我弄迷糊了,哥们你还是自己调试跟踪一下吧!!!!
2011-7-12 17:57
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
就是红色部分来回执行,执行完十次后再执行黑色的所有的ASM的代码十次
2011-7-12 18:57
0
雪    币: 2393
活跃值: (1387)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
把 asm 移出来外面,另外给它一个 for 迴圈。
2011-7-13 10:43
0
游客
登录 | 注册 方可回帖
返回
//