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

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開(kāi)心的工作
簡(jiǎn)單、開(kāi)放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
調(diào)試程序調(diào)試到系統(tǒng)庫(kù)函數(shù)的代碼時(shí),總會(huì)發(fā)現(xiàn)系統(tǒng)函數(shù)都是從一條MOVEDI, EDI指令開(kāi)始的,緊接著這條指令下面才是標(biāo)準(zhǔn)的建立函數(shù)局部棧的代碼。對(duì)系統(tǒng)DLL比如ntdll.dll進(jìn)行反匯編,可以發(fā)現(xiàn)它的每個(gè)導(dǎo)出函數(shù)都是如此,并且每個(gè)導(dǎo)出函數(shù)開(kāi)始處的MOVEDI, EDI上面緊接著5條NOP指令。比如在WinDbg中查看TextOutA周?chē)拇a:
0:000> u TextOutA-0x0a L 10
GDI32!NtGdiTransparentBlt+0xa:
77efc43f ff12?????? ?????call??? dword ptr [edx]
77efc441 c22c00????????? ret???? 2Ch
77efc444 90????????????? nop
77efc445 90????????????? nop
77efc446 90????????????? nop
77efc447 90????????????? nop
77efc448 90????????????? nop
GDI32!TextOutA:
77efc449 8bff??????????? mov ????edi,edi
77efc44b 55????????????? push??? ebp
77efc44c 8bec??????????? mov???? ebp,esp
很明顯,兩個(gè)字節(jié)的MOVEDI,EDI指令什么事情也不做,那么,就有兩個(gè)問(wèn)題:第一,為什么不直接從函數(shù)體開(kāi)始而要從這條什么都不做的指令開(kāi)始呢?第二,即使需要在函數(shù)一開(kāi)始空出兩個(gè)字節(jié),為什么不直接使用兩條NOP指令,而要使用這條MOV指令呢?在網(wǎng)上查閱一些資料后,得到了答案:
對(duì)于第一個(gè)問(wèn)題,答案是為了實(shí)現(xiàn)hot-patching技術(shù),即運(yùn)行時(shí)修改一個(gè)函數(shù)的行為。修改過(guò)程如下:把MOVEDI, EDI修改為一條短跳轉(zhuǎn)指令(一條短跳轉(zhuǎn)指令恰好兩個(gè)字節(jié)),把MOVEDI, EDI上面的五個(gè)NOP修改為一條長(zhǎng)跳轉(zhuǎn)指令(一條長(zhǎng)跳轉(zhuǎn)指令恰好五個(gè)字節(jié)),短跳轉(zhuǎn)指令跳到長(zhǎng)跳轉(zhuǎn)指令上,長(zhǎng)跳轉(zhuǎn)指令跳到修改后的函數(shù)體上。
對(duì)于第二個(gè)問(wèn)題,答案是為了提高效率。執(zhí)行一條MOV指令比執(zhí)行兩條NOP指令花費(fèi)更少的時(shí)間。
?
下面是在網(wǎng)上搜索到的相關(guān)資料:
http://blogs.msdn.com/ishai/archive/2004/06/24/165143.aspx
在這篇日志中作者指出這是一種實(shí)現(xiàn)hot-patching和hot-fix的技術(shù),而且解釋了為什么不使用detours技術(shù)來(lái)實(shí)現(xiàn)hot-patching。此外,作者提到了具體是如何使用這種技術(shù)來(lái)實(shí)現(xiàn)hot-patching的,但是只是一句話帶過(guò)。
?
http://msmvps.com/blogs/kernelmustard/archive/2005/04/25/44413.aspx
這篇文章中作者從效率和其它方面詳細(xì)解釋了為什么選擇用這種技術(shù)來(lái)實(shí)現(xiàn)hot-patching以及為什么要這樣實(shí)現(xiàn)(短跳轉(zhuǎn)加長(zhǎng)跳轉(zhuǎn)而不是一次性長(zhǎng)跳轉(zhuǎn))。
?
http://xelf.info/knowledge/MemoryCopy.cpp
這里給出了具體的memcpy的C語(yǔ)言源代碼。如果在安裝VC6的時(shí)候選擇了安裝CRT源代碼,則在VC安裝目錄的SRC/INTEL/目錄中有memcmp.asm等文件,它們就是對(duì)應(yīng)的CRT函數(shù)的源代碼,這些源代碼中也都有詳細(xì)的注釋。
?
另外,在自己的日志http://blog.csdn.net/jcwKyl/archive/2008/03/25/2217428.aspx里面,曾經(jīng)對(duì)strcmp函數(shù)中的MOVEDI, EDI指令感到困惑,其實(shí)只要看看strcmp.asm中的源代碼就可以明白,那條MOVEDI, EDI完全是為了內(nèi)存四字節(jié)對(duì)齊的。源代碼中寫(xiě)的是align 4,在運(yùn)行時(shí),如果需要一個(gè)填充字節(jié),則會(huì)填充一條NOP指令,如果需要兩個(gè)字節(jié)來(lái)填充,則會(huì)填充一條MOVEDI, EDI指令,之所以不用兩條NOP,是出于效率的考慮。


標(biāo)?題:?XP系統(tǒng)程序中開(kāi)頭的MOV?EDI,EDI指令的解釋
發(fā)帖人:chaykovsky
時(shí)?間:?2005-11-25?13:55?
原文鏈接:http://bbs.pediy.com/showthread.php?threadid=18863

Feedback

# re: 函數(shù)開(kāi)始處的MOV EDI, EDI的作用收藏  回復(fù)  更多評(píng)論   

2015-01-23 10:28 by abc
不錯(cuò),謝謝分享。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            老牛国产精品一区的观看方式| 国产精品夜夜夜| 亚洲黄色有码视频| 亚洲乱码视频| 国产精品扒开腿做爽爽爽视频| 亚洲免费视频观看| 久久先锋资源| 99在线精品视频| 国产欧美在线看| 美女免费视频一区| av成人天堂| 老司机成人在线视频| 99国内精品久久| 国产色爱av资源综合区| 麻豆视频一区二区| 亚洲图片欧美日产| 欧美1区视频| 亚洲欧美国产高清| 影音先锋亚洲电影| 国产精品久久77777| 久久婷婷蜜乳一本欲蜜臀| 日韩亚洲在线| 美女久久一区| 亚洲欧美日韩精品在线| 亚洲国产精品一区二区第一页 | 久久亚洲图片| 中国日韩欧美久久久久久久久| 国产一区二区成人久久免费影院| 免播放器亚洲| 欧美一区二区高清| 日韩视频在线免费观看| 免费看亚洲片| 欧美在线国产| 亚洲视频1区2区| 亚洲国产精品电影| 国产丝袜一区二区三区| 欧美视频中文字幕| 免费试看一区| 久久久久久久久久码影片| 亚洲网站视频福利| 亚洲日韩欧美视频| 欧美成人免费小视频| 久久国产精品一区二区三区| 正在播放亚洲一区| 亚洲美女诱惑| 亚洲国产成人一区| 激情综合色综合久久| 国产精品一区二区在线观看网站 | 欧美日韩亚洲综合一区| 免费永久网站黄欧美| 久久精品一区二区三区中文字幕| 亚洲一区二区三区激情| 一区二区三区www| 亚洲精品久久久久久久久| 欧美国产日韩一二三区| 久久在线精品| 久久综合色综合88| 久久久亚洲精品一区二区三区| 欧美一区二区三区精品电影| 亚洲女女做受ⅹxx高潮| 亚洲午夜伦理| 亚洲女性喷水在线观看一区| 亚洲丝袜av一区| 亚洲无人区一区| 亚洲综合不卡| 亚洲免费视频一区二区| 亚洲欧美日韩综合国产aⅴ| 亚洲在线不卡| 香蕉久久夜色精品| 久久国产精品一区二区| 久久国产视频网站| 久久亚洲影音av资源网| 免费在线看成人av| 亚洲丰满在线| 亚洲精品一区二区三区在线观看| 亚洲毛片在线观看| 99在线|亚洲一区二区| 国产精品99久久久久久久久| 亚洲伊人网站| 久久riav二区三区| 巨胸喷奶水www久久久免费动漫| 麻豆成人在线| 欧美日韩亚洲一区三区| 国产欧美日韩一区| 激情欧美一区二区三区| 亚洲精品中文字幕有码专区| 一区二区激情小说| 亚洲欧洲av一区二区| 久久影音先锋| 亚洲欧洲视频| 亚洲一区二区三区四区在线观看 | 噜噜噜噜噜久久久久久91| 午夜天堂精品久久久久| 亚洲第一在线视频| 亚欧美中日韩视频| 欧美日韩在线直播| 91久久久在线| 久久躁狠狠躁夜夜爽| 亚洲在线国产日韩欧美| 欧美精品在线免费观看| 亚洲福利在线观看| 久久精品久久综合| 亚洲一区精品在线| 欧美少妇一区| 99这里只有久久精品视频| 欧美成人自拍| 久久久激情视频| 国产亚洲一区二区三区在线观看| 亚洲一区在线免费| 亚洲精品日韩久久| 欧美黑人多人双交| 亚洲国内精品| 欧美成人精品1314www| 久久精品国内一区二区三区| 国产亚洲激情在线| 欧美主播一区二区三区| 亚洲免费一在线| 国产精品丝袜91| 亚洲砖区区免费| 亚洲午夜视频| 国产精品久久久久aaaa九色| 在线视频日韩| 一区二区三区精密机械公司 | 欧美亚洲成人免费| 亚洲视频axxx| 亚洲视频欧美在线| 国产精品久久一卡二卡| 亚洲欧美一区二区原创| 亚洲一区二区三区高清 | 美女视频黄a大片欧美| 久久精品国产在热久久| 激情综合亚洲| 欧美高清不卡| 欧美黄色一级视频| 在线性视频日韩欧美| 一区二区三区久久久| 国产精品免费网站在线观看| 欧美一级精品大片| 久久精品1区| 91久久中文| 一本久久青青| 国产欧美一区二区精品仙草咪| 久久久国际精品| 久久中文字幕导航| 亚洲毛片网站| 亚洲视频网在线直播| 国产日韩在线不卡| 免费视频最近日韩| 欧美精品成人| 欧美一区日本一区韩国一区| 久久精品五月婷婷| 亚洲精品乱码久久久久久| 一区二区三区四区国产精品| 国产欧美在线视频| 欧美成年人网站| 欧美性片在线观看| 久久精品夜色噜噜亚洲a∨| 久久综合久久综合这里只有精品 | 欧美日韩妖精视频| 欧美在线视频一区二区| 久久综合电影| 亚洲砖区区免费| 久久久美女艺术照精彩视频福利播放| 亚洲国产欧美不卡在线观看| 9人人澡人人爽人人精品| 国产日韩欧美综合| 亚洲国产精品视频一区| 国产精品久久久久久久浪潮网站 | 亚洲小视频在线| 在线观看三级视频欧美| 99av国产精品欲麻豆| 韩国欧美国产1区| 日韩一区二区福利| 好吊色欧美一区二区三区视频| 亚洲精品美女久久7777777| 国产人成一区二区三区影院| 亚洲国产精品专区久久| 国产欧美日韩精品丝袜高跟鞋| 欧美高清成人| 国产欧美短视频| 亚洲欧洲一区二区在线观看| 国产亚洲欧洲| 亚洲最新视频在线| 亚洲欧洲另类国产综合| 欧美一区二区在线看| 亚洲一区二区视频在线| 麻豆精品在线观看| 久久精品视频播放| 国产精品国产三级国产aⅴ9色| 欧美高清视频一区二区| 国产欧美日韩视频| 亚洲麻豆av| 最新中文字幕亚洲| 久久久国产一区二区三区| 香蕉久久夜色精品| 欧美日韩亚洲一区在线观看| 欧美激情视频网站| 狠狠爱综合网| 欧美在线观看一区二区三区| 亚洲欧美日韩综合一区|