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

隨筆-16  評(píng)論-116  文章-0  trackbacks-0
轉(zhuǎn)載請(qǐng)注明出處http://m.shnenglu.com/greatws/archive/2008/04/22/47783.html

今天突發(fā)奇想想玩玩C的內(nèi)聯(lián)匯編,以前也經(jīng)常在DOS下玩debug,那就先整個(gè)最簡(jiǎn)單的MessageBox玩玩咯
網(wǎng)上找了一段代碼
 char* lpCaption="111";
 
char* lpText="222";

_asm  
 
{  
  push MB_OK  
  lea eax,lpCaption 
  push eax 
  lea eax,lpText
  push eax 
  push NULL
  call dword ptr [MessageBoxA]  
}


于是在VC9下建了一個(gè)Dialog工程,MFC,然后在一個(gè)Button事件下加入這段代碼,鼠標(biāo)在MessageBoxA上放了下,一看CWnd::MessageBox...3個(gè)參數(shù),而上面代碼中push了4個(gè)參數(shù),汗一個(gè),那就去掉最后一個(gè)參數(shù)句柄吧,編譯---運(yùn)行---點(diǎn)一下Button,居然標(biāo)題和內(nèi)容都是亂碼。。。回到VC開(kāi)始調(diào)試,看看問(wèn)題出在哪里。進(jìn)入反匯編窗口,看lpCaption的值是0x00424da4,F(xiàn)8單步(為了和OD一致,我改成了F8),執(zhí)行l(wèi)ea eax,lpCaption ,一看eax的值,嚇一跳,變成0x0012f878...汗一個(gè),怎么就變成這個(gè)了。仔細(xì)一想,lpCation是一個(gè)char*指針類型, lpCaption指向的地址是0x00424da4,當(dāng)然lpCaption也是存在內(nèi)存某一地址中的,估計(jì)lea把lpCation所在的內(nèi)存地址送到eax,沒(méi)有將其中的值送到eax,于是改成mov試試
_asm  
 
{  
  push MB_OK  
  mov eax,lpCaption 
  push eax 
  mov eax,lpText
  push eax 
  call dword ptr [MessageBoxA]  
}



這下就沒(méi)有問(wèn)題了,真汗,從中學(xué)一直被忽悠到大學(xué)....

接下來(lái)來(lái)測(cè)試一C內(nèi)聯(lián)asm和C下那個(gè)效率更高,為了方便查看,來(lái)直接調(diào)用API的MessageBox,但是不能call dword ptr [::MessageBoxA],那就用函數(shù)指針吧- -
typedef int (__stdcall* messageboxfunc)(HWND,LPCTSTR,LPCTSTR,UINT);
 
char* lpCaption="111";
 
char* lpText="222";
 messageboxfunc api_messagebox
=::MessageBoxA;
 _asm  
 
{  
  
  push MB_OK  
  mov eax,lpCaption 
  push eax 
  mov eax,lpText
  push eax 
  push NULL
  call dword ptr [api_messagebox]  
  
 }

//寫(xiě)一個(gè)直接調(diào)用MessageBox的函數(shù),等下用OD調(diào)試看看代碼情況
api_messagebox(NULL,lpText,lpCaption,MB_OK);



OD調(diào)試的截圖
第一行是我的::MessageBox函數(shù)指針,到call dword ptr [ebp-4]用了9行...用了29個(gè)字節(jié),mov-mov-mov-push-mov-push-mov-push-push,好花啊,而直接使用函數(shù)調(diào)用API(后那個(gè)call esi,esi在上面就是mov esi,dword ptr [<&USER32.MessageBoxA>],函數(shù)指針嘛),4個(gè)連續(xù)的push外加一個(gè)call則只用了14個(gè)字節(jié),my god!!!!!C內(nèi)聯(lián)asm反而效率低?還是編譯器不對(duì)這些代碼進(jìn)行優(yōu)化?成為傳說(shuō)中的“花指令”?

由此可見(jiàn),VC的代碼優(yōu)化非常的好,一般不要輕易用內(nèi)聯(lián)asm,除非是超高手或者迫不得已~~HOHO,但是用C內(nèi)聯(lián)匯編寫(xiě)一些花指令還是不錯(cuò)的,比如說(shuō)把jmp 00420000寫(xiě)成
jz 00420000
nop
nop
nop
nop
jnz 00420000

HOHO,對(duì)軟件加密有所幫助
by gratws
posted on 2008-04-22 01:39 greatws 閱讀(6210) 評(píng)論(12)  編輯 收藏 引用

評(píng)論:
# re: 被忽悠了,一直以為lea和mov指令差不多的,今天算是知道了,順便測(cè)試了下C內(nèi)聯(lián)匯編的效率 2008-04-22 09:15 | 夢(mèng)在天涯
haha!超級(jí)高手!期待更多的!  回復(fù)  更多評(píng)論
  
# re: 被忽悠了,一直以為lea和mov指令差不多的,今天算是知道了,順便測(cè)試了下C內(nèi)聯(lián)匯編的效率 2008-04-22 09:24 | xxx
沒(méi)有學(xué)好匯編,不是被忽悠  回復(fù)  更多評(píng)論
  
# re: 被忽悠了,一直以為lea和mov指令差不多的,今天算是知道了,順便測(cè)試了下C內(nèi)聯(lián)匯編的效率 2008-04-22 09:37 | 陳梓瀚(vczh)
lea是Load Efficient Address啊,跟Mov咋能一樣……  回復(fù)  更多評(píng)論
  
# re: 被忽悠了,一直以為lea和mov指令差不多的,今天算是知道了,順便測(cè)試了下C內(nèi)聯(lián)匯編的效率 2008-04-22 09:46 | lonkil
呵呵,lea是傳地址,mov是賦值.

內(nèi)聯(lián)那段分析的有道理,學(xué)習(xí)了.以后寫(xiě)代碼的時(shí)候要主意了.
  回復(fù)  更多評(píng)論
  
# 關(guān)于內(nèi)聯(lián)指令不是很明白 2008-04-22 22:15 | herculesinchina
關(guān)于反匯編代碼寫(xiě)的不清楚,看不大懂你的意思。
若說(shuō)內(nèi)聯(lián)效率有時(shí)低,那可能是因?yàn)榫幾g器要在內(nèi)聯(lián)指令的前后為某些寄存器賦值,若你的內(nèi)聯(lián)代碼較少,則編譯器的準(zhǔn)備工作就顯得多了。  回復(fù)  更多評(píng)論
  
# re: 被忽悠了,一直以為lea和mov指令差不多的,今天算是知道了,順便測(cè)試了下C內(nèi)聯(lián)匯編的效率 2008-04-23 13:10 | 空明流轉(zhuǎn)
lea和mov差遠(yuǎn)了去了。。。  回復(fù)  更多評(píng)論
  
# re: 被忽悠了,一直以為lea和mov指令差不多的,今天算是知道了,順便測(cè)試了下C內(nèi)聯(lián)匯編的效率 2008-04-23 13:48 | faint
lea ,mov大學(xué)學(xué)的時(shí)候老師就說(shuō)了嘛,“要注意區(qū)分”  回復(fù)  更多評(píng)論
  
# re: 被忽悠了,一直以為lea和mov指令差不多的,今天算是知道了,順便測(cè)試了下C內(nèi)聯(lián)匯編的效率 2008-04-24 20:59 | AMXTSHMF
= =!  回復(fù)  更多評(píng)論
  
# re: 被忽悠了,一直以為lea和mov指令差不多的,今天算是知道了,順便測(cè)試了下C內(nèi)聯(lián)匯編的效率 2008-04-27 19:47 | greatws
@faint
我老師怎么沒(méi)給我說(shuō)過(guò)...  回復(fù)  更多評(píng)論
  
# re: 被忽悠了,一直以為lea和mov指令差不多的,今天算是知道了,順便測(cè)試了下C內(nèi)聯(lián)匯編的效率 2008-08-29 10:44 | xufan
好想學(xué)喔..可以教我嗎  回復(fù)  更多評(píng)論
  
# re: 被忽悠了,一直以為lea和mov指令差不多的,今天算是知道了,順便測(cè)試了下C內(nèi)聯(lián)匯編的效率 2008-11-12 09:21 | 似水之心
自學(xué)的匯編,書(shū)上沒(méi)有l(wèi)ea,找到這兒來(lái)了,原來(lái)這個(gè)樣子,謝謝了

改個(gè)錯(cuò)字  回復(fù)  更多評(píng)論
  
# shi 2010-08-23 16:35 | uk dress
That's good  回復(fù)  更多評(píng)論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            一区二区免费在线观看| 亚洲色无码播放| 美国成人毛片| 久久精品欧美日韩| 午夜精品成人在线| 亚洲欧美成aⅴ人在线观看| 亚洲综合精品四区| 亚洲欧美综合另类中字| 午夜久久一区| 美女黄网久久| 欧美日韩在线视频观看| 国产精品美女一区二区| 欧美人与性禽动交情品| 欧美午夜美女看片| 国产区日韩欧美| 尤物在线精品| 亚洲国产成人久久| 99精品视频免费观看视频| 在线观看视频一区| 亚洲欧洲日本专区| 亚洲视频在线播放| 欧美在线观看一区二区| 免费人成网站在线观看欧美高清| 免费不卡中文字幕视频| 亚洲日本中文字幕免费在线不卡| 亚洲精品一区二区三区四区高清| 一区二区久久| 欧美综合国产| 欧美极品欧美精品欧美视频| 欧美日韩国产综合一区二区| 国产欧美在线| 亚洲电影免费观看高清完整版在线 | 99精品热视频| 午夜精品久久久久久99热| 久久综合一区| 国产精品久久久久久久电影| 亚洲资源av| 久久综合一区二区三区| 欧美成人自拍视频| 99在线精品视频在线观看| 亚洲深夜福利在线| 另类春色校园亚洲| 亚洲视频高清| 欧美aⅴ一区二区三区视频| 国产精品豆花视频| 亚洲狠狠婷婷| 久久精品最新地址| 亚洲免费高清视频| 亚洲欧美日韩在线播放| 欧美成人黄色小视频| 国产女主播一区| 日韩午夜剧场| 欧美大片一区二区| 午夜激情一区| 国产精品免费一区二区三区在线观看 | 国产精品www网站| 日韩视频精品在线| 亚洲国产欧美久久| 欧美一二区视频| 亚洲理论在线观看| 欧美二区视频| 免费在线观看精品| 亚洲午夜精品17c| 欧美日韩久久久久久| aa亚洲婷婷| 亚洲美女诱惑| 欧美性猛交视频| 亚洲一区二区三区视频| 亚洲美女91| 国产精品video| 亚洲一区二区三区精品在线 | 一道本一区二区| 久久国产精品99国产| 亚洲视频日本| 国产日韩欧美中文在线播放| 日韩视频中午一区| 亚洲国产精品高清久久久| 欧美成人高清| 国产精品专区第二| 久久精品亚洲| 免费欧美日韩| 亚洲日韩视频| 999亚洲国产精| 欧美日韩综合精品| 亚久久调教视频| 久久精品国产精品亚洲精品| 麻豆国产va免费精品高清在线| 欧美人与性动交α欧美精品济南到| 国产精品一二三| 亚洲精品视频在线| 狠狠爱成人网| 欧美精品尤物在线| 99成人在线| 亚洲欧美日韩在线| 在线观看国产成人av片| 亚洲美女视频在线观看| 国产午夜精品久久久久久免费视| 欧美v日韩v国产v| 欧美视频日韩| 久久综合九色九九| 欧美久久久久久久久| 亚洲欧美在线观看| 老司机一区二区| 欧美丝袜一区二区三区| 久久综合久久久久88| 欧美日韩精品免费| 久久永久免费| 欧美午夜电影完整版| 久久婷婷国产综合精品青草| 欧美激情一区二区三区在线视频 | 欧美日韩国产欧| 久久国产99| 欧美午夜寂寞影院| 欧美高清不卡在线| 国产日韩欧美视频| 日韩一区二区福利| 亚洲高清精品中出| 一区二区欧美亚洲| 欧美日韩午夜在线| 牛夜精品久久久久久久99黑人 | 久久久久综合网| 久久成年人视频| 亚洲一级电影| 欧美成人首页| 欧美激情视频给我| 国产一区二区精品久久99| 亚洲日本中文| 亚洲激情第一页| 久久久久这里只有精品| 欧美在线观看一区| 国产精品久久久| 夜夜嗨av一区二区三区四季av| 91久久精品一区二区别| 久久精品视频在线看| 欧美专区在线播放| 国产精品久久久久久久电影| 亚洲美女av在线播放| 亚洲美女毛片| 免费亚洲一区二区| 猛男gaygay欧美视频| 国产亚洲免费的视频看| 亚洲一区二区网站| 午夜日韩电影| 国产精品成人一区| 午夜久久tv| 国产精品久久久久aaaa九色| 日韩性生活视频| 亚洲资源av| 国产在线欧美| 久久久久国产一区二区三区| 久久久蜜臀国产一区二区| 国内成+人亚洲| 久久精品欧美| 欧美激情第8页| 一区二区三区毛片| 国产精品国产精品| 亚洲欧美色婷婷| 欧美18av| 99ri日韩精品视频| 国产精品久久久久久妇女6080| 亚洲一区欧美一区| 久久人人爽人人| 亚洲精品一区二区三区99| 欧美日韩在线播放| 欧美亚洲综合另类| 亚洲国产岛国毛片在线| 国产欧美日韩不卡免费| 久久精品国产免费| 亚洲国产婷婷香蕉久久久久久99| 日韩视频一区二区三区| 欧美午夜精品久久久| 欧美在线你懂的| 亚洲人成在线观看| 欧美在线免费观看视频| 亚洲国产一区二区三区高清| 欧美日韩的一区二区| 亚洲免费一区二区| 欧美成在线观看| 亚洲欧美综合网| 亚洲高清激情| 国产伦精品一区二区三区高清| 久久久久在线| 亚洲特色特黄| 亚洲国产精品123| 久久岛国电影| 一本色道久久综合狠狠躁篇怎么玩 | 欧美亚洲免费在线| 亚洲第一中文字幕| 欧美日韩国产首页| 久久婷婷久久| 亚洲综合国产激情另类一区| 在线免费观看日韩欧美| 欧美视频官网| 亚洲尤物精选| 亚洲人成小说网站色在线| 国产亚洲成av人片在线观看桃| 欧美日韩精品| 亚洲夜间福利| 亚洲人成7777| 欧美成人激情视频免费观看|