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

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
調試程序調試到系統庫函數的代碼時,總會發現系統函數都是從一條MOVEDI, EDI指令開始的,緊接著這條指令下面才是標準的建立函數局部棧的代碼。對系統DLL比如ntdll.dll進行反匯編,可以發現它的每個導出函數都是如此,并且每個導出函數開始處的MOVEDI, EDI上面緊接著5條NOP指令。比如在WinDbg中查看TextOutA周圍的代碼:
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
很明顯,兩個字節的MOVEDI,EDI指令什么事情也不做,那么,就有兩個問題:第一,為什么不直接從函數體開始而要從這條什么都不做的指令開始呢?第二,即使需要在函數一開始空出兩個字節,為什么不直接使用兩條NOP指令,而要使用這條MOV指令呢?在網上查閱一些資料后,得到了答案:
對于第一個問題,答案是為了實現hot-patching技術,即運行時修改一個函數的行為。修改過程如下:把MOVEDI, EDI修改為一條短跳轉指令(一條短跳轉指令恰好兩個字節),把MOVEDI, EDI上面的五個NOP修改為一條長跳轉指令(一條長跳轉指令恰好五個字節),短跳轉指令跳到長跳轉指令上,長跳轉指令跳到修改后的函數體上。
對于第二個問題,答案是為了提高效率。執行一條MOV指令比執行兩條NOP指令花費更少的時間。
?
下面是在網上搜索到的相關資料:
http://blogs.msdn.com/ishai/archive/2004/06/24/165143.aspx
在這篇日志中作者指出這是一種實現hot-patching和hot-fix的技術,而且解釋了為什么不使用detours技術來實現hot-patching。此外,作者提到了具體是如何使用這種技術來實現hot-patching的,但是只是一句話帶過。
?
http://msmvps.com/blogs/kernelmustard/archive/2005/04/25/44413.aspx
這篇文章中作者從效率和其它方面詳細解釋了為什么選擇用這種技術來實現hot-patching以及為什么要這樣實現(短跳轉加長跳轉而不是一次性長跳轉)。
?
http://xelf.info/knowledge/MemoryCopy.cpp
這里給出了具體的memcpy的C語言源代碼。如果在安裝VC6的時候選擇了安裝CRT源代碼,則在VC安裝目錄的SRC/INTEL/目錄中有memcmp.asm等文件,它們就是對應的CRT函數的源代碼,這些源代碼中也都有詳細的注釋。
?
另外,在自己的日志http://blog.csdn.net/jcwKyl/archive/2008/03/25/2217428.aspx里面,曾經對strcmp函數中的MOVEDI, EDI指令感到困惑,其實只要看看strcmp.asm中的源代碼就可以明白,那條MOVEDI, EDI完全是為了內存四字節對齊的。源代碼中寫的是align 4,在運行時,如果需要一個填充字節,則會填充一條NOP指令,如果需要兩個字節來填充,則會填充一條MOVEDI, EDI指令,之所以不用兩條NOP,是出于效率的考慮。


標?題:?XP系統程序中開頭的MOV?EDI,EDI指令的解釋
發帖人:chaykovsky
時?間:?2005-11-25?13:55?
原文鏈接:http://bbs.pediy.com/showthread.php?threadid=18863

Feedback

# re: 函數開始處的MOV EDI, EDI的作用收藏  回復  更多評論   

2015-01-23 10:28 by abc
不錯,謝謝分享。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美一区二区三区在线观看| 欧美精品三级| 国内精品免费在线观看| 亚洲精品欧美极品| 日韩视频永久免费| 欧美成人精品一区二区三区| 蜜桃av一区二区三区| 亚洲国产精品美女| 欧美成人亚洲成人| 99re热这里只有精品视频| 亚洲视频在线观看| 欧美无砖砖区免费| 99亚洲一区二区| 性欧美暴力猛交69hd| 精品动漫3d一区二区三区| 亚洲一区中文字幕在线观看| 狠狠噜噜久久| 亚洲丶国产丶欧美一区二区三区 | 欧美激情视频一区二区三区在线播放| 最新日韩av| 欧美亚洲综合在线| 久久亚洲精品伦理| 最近中文字幕mv在线一区二区三区四区| 亚洲视频一区二区| 欧美一区二区观看视频| 久久高清国产| 亚洲区一区二| 久久国产一区二区| 欧美三级中文字幕在线观看| 欧美日韩亚洲高清一区二区| 国产精品日韩精品| 最新中文字幕亚洲| 正在播放亚洲| 蜜桃av综合| 亚洲日本中文字幕| 老鸭窝亚洲一区二区三区| 亚洲电影下载| 久久久久久亚洲综合影院红桃| 欧美高清在线播放| 欧美视频在线看| 性欧美xxxx视频在线观看| 欧美成人资源网| 99re66热这里只有精品4| 亚洲一区二区三区午夜| 欧美日韩一区二区三| 亚洲精品专区| 亚洲三级影院| 欧美中文在线视频| 久久视频一区二区| 精品成人a区在线观看| 亚洲视频www| 影音先锋日韩有码| 欧美成人精品在线观看| 国产欧美一区二区三区在线老狼 | 国产毛片精品国产一区二区三区| 美日韩精品视频免费看| 久久精品首页| 亚洲午夜激情网站| 欧美特黄一区| 午夜精品一区二区三区电影天堂 | 亚洲国产精品欧美一二99| 亚洲天堂成人在线观看| 久久精品亚洲精品| 国产乱码精品| 亚洲一区二区高清视频| 欧美激情第4页| 欧美一区二区黄| 亚洲另类春色国产| 亚洲一区在线免费观看| 国产美女一区| 亚洲欧美视频| 亚洲愉拍自拍另类高清精品| 国产午夜一区二区三区| 亚洲国产天堂久久综合网| 欧美日韩三级| 牛人盗摄一区二区三区视频| 狠狠色噜噜狠狠色综合久| 99综合视频| 国产精品视频xxx| 亚洲免费一区二区| 国产永久精品大片wwwapp| 羞羞答答国产精品www一本| 欧美专区18| 亚洲一区二区三区在线| 久久久国产一区二区| 性欧美xxxx视频在线观看| 久久久久久久综合| 日韩视频在线播放| 亚洲欧美美女| 91久久黄色| 午夜视频精品| 欧美伦理影院| 国产日韩视频一区二区三区| 亚洲精品韩国| 国产精品一区二区三区乱码| 亚洲激情不卡| 一区二区自拍| 久久久久免费观看| 久久婷婷国产麻豆91天堂| 欧美韩日一区| 欧美成人免费全部观看天天性色| 亚洲国产成人午夜在线一区| 欧美精品一区二区三区蜜臀| 久久国产精品黑丝| 国产乱肥老妇国产一区二| 99国产一区二区三精品乱码| 亚洲最新视频在线播放| 久热精品视频在线观看一区| 一区二区三区欧美成人| 国产婷婷精品| 欧美性猛交视频| 久久亚洲二区| 国产日韩欧美不卡在线| 亚洲欧美国产va在线影院| 91久久精品久久国产性色也91| 亚洲视频网在线直播| 欧美在线视频一区二区三区| 欧美日韩1080p| 久久gogo国模裸体人体| 欧美91精品| 美日韩在线观看| 激情综合网激情| 国产精品久久久久一区二区三区| 久久久在线视频| 亚洲美女在线观看| 欧美日本国产一区| 亚洲欧美激情一区| 西瓜成人精品人成网站| 亚洲欧美视频在线| 蜜臀va亚洲va欧美va天堂| 国产精品视频最多的网站| 亚洲视频在线观看视频| 亚洲电影欧美电影有声小说| 欧美日韩综合在线免费观看| 一区二区三区欧美日韩| 六月婷婷一区| 亚洲美女在线看| 国产精品一二一区| 午夜精品一区二区三区在线播放 | 久热精品视频| 亚洲国产精品一区二区www在线| 中日韩视频在线观看| 欧美国产亚洲另类动漫| 亚洲成色777777女色窝| 久热re这里精品视频在线6| 久久久久久久久久久成人| 激情综合久久| 免费成人毛片| 另类春色校园亚洲| 日韩亚洲精品在线| 一区二区欧美国产| 国产乱码精品一区二区三区av| 午夜欧美大片免费观看| 午夜精品短视频| 狠狠色综合网| 91久久久精品| 国产精品xxx在线观看www| 亚洲尤物在线视频观看| 亚洲影院免费| 狠狠爱成人网| 亚洲丰满在线| 欧美无砖砖区免费| 久久午夜色播影院免费高清| 免播放器亚洲一区| 亚洲午夜激情| 午夜精品久久久久久99热| 国际精品欧美精品| 亚洲人成高清| 国产欧美日韩激情| 欧美黄色网络| 国产精品视频第一区| 免费成人av在线| 国产精品美女| 国产伦精品一区二区三区| 欧美在线黄色| 噜噜噜久久亚洲精品国产品小说| 日韩视频二区| 性欧美在线看片a免费观看| 亚洲黄色av一区| 亚洲欧美视频| 一本久久综合亚洲鲁鲁五月天| 亚洲欧美日韩成人高清在线一区| 曰本成人黄色| 午夜精品一区二区三区在线视 | 久久久999| 欧美日韩视频第一区| 久久高清免费观看| 欧美日韩高清免费| 久久免费偷拍视频| 欧美亚洲第一区| 亚洲高清av在线| 国产综合色在线| 亚洲午夜三级在线| 一区二区日韩免费看| 久久久99爱| 久久精品欧美日韩精品| 国产精品乱码一区二区三区 | 亚洲欧美日韩一区二区三区在线 | 国产精品区一区| 宅男噜噜噜66一区二区66|