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

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>
            亚洲精品视频在线观看网站| 一本色道精品久久一区二区三区| 一区二区在线看| 国产精品成人一区| 国产精品家庭影院| 国产精品永久入口久久久| 国产精品久久久久91| 国产乱理伦片在线观看夜一区| 国产精品嫩草影院av蜜臀| 国产精品日韩在线一区| 国产亚洲美州欧州综合国| 国产亚洲精品久久久久婷婷瑜伽| 黄色在线成人| 亚洲特色特黄| 久久av一区| 欧美成人午夜影院| 日韩特黄影片| 午夜国产精品影院在线观看| 久久精品中文字幕一区二区三区| 久久久久久噜噜噜久久久精品| 欧美va天堂在线| 欧美亚日韩国产aⅴ精品中极品| 国产精品永久免费在线| 亚洲激情av| 翔田千里一区二区| 免费观看国产成人| 国产精品久久久久久妇女6080 | 免费成人高清| 欧美激情一区二区三区在线视频观看| 欧美黄色视屏| 国产精品日本欧美一区二区三区| 欧美激情bt| 一区二区三区四区五区精品视频| 欧美在线播放一区二区| 亚洲电影免费观看高清完整版在线观看| 久久精品女人| 亚洲精品综合久久中文字幕| 午夜亚洲伦理| 欧美日韩一区二区视频在线| 伊人久久亚洲美女图片| 午夜亚洲性色视频| 亚洲精品国产欧美| 免费看av成人| 在线成人激情视频| 久久精品一本| 亚洲婷婷免费| 欧美视频福利| 亚洲视频一区| 亚洲最快最全在线视频| 欧美电影在线播放| 亚洲第一综合天堂另类专| 午夜在线电影亚洲一区| 妖精视频成人观看www| 欧美成人黄色小视频| 尤物yw午夜国产精品视频明星 | 久久人人爽人人爽| 一二美女精品欧洲| 欧美日韩mv| 久久国产直播| 国产日韩一区| 久久国产精品第一页| 亚洲专区在线| 国产欧美一区二区在线观看| 午夜老司机精品| 亚洲一区二区欧美| 国产精品久久久久久久第一福利| 国产一区二区三区四区在线观看| 亚洲伊人观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美午夜在线视频| 亚洲图片在线观看| 99ri日韩精品视频| 欧美日韩在线视频首页| 亚洲视频中文| 亚洲图片欧美日产| 国产欧美日韩在线观看| 久久精品国产综合| 欧美中文字幕精品| 亚洲国产日韩综合一区| 亚洲精品国产拍免费91在线| 欧美偷拍另类| 欧美有码在线视频| 久久蜜桃资源一区二区老牛| 亚洲国产一二三| 亚洲精品视频免费| 国产精品日日做人人爱| 久久久久在线| 欧美精品大片| 欧美在线黄色| 欧美成人三级在线| 99pao成人国产永久免费视频| 午夜影视日本亚洲欧洲精品| 韩国成人福利片在线播放| 欧美高清在线视频观看不卡| 欧美日韩国产另类不卡| 欧美一区二区三区视频免费播放| 久久久久久国产精品mv| 亚洲视频播放| 久久精品99无色码中文字幕| 亚洲伦伦在线| 欧美一区二区三区啪啪| 久久精品国产欧美亚洲人人爽| 最新亚洲激情| 午夜精品视频一区| 99精品免费| 久久九九99视频| 亚洲欧美日韩国产一区二区| 老司机精品视频网站| 香蕉亚洲视频| 欧美午夜a级限制福利片| 欧美成人嫩草网站| 国产日韩成人精品| 99精品视频一区| 亚洲欧洲视频| 久久视频精品在线| 久久精品夜色噜噜亚洲a∨| 欧美亚一区二区| 亚洲精品视频在线观看网站| 永久免费毛片在线播放不卡| 午夜欧美大片免费观看| 一区二区三区国产| 欧美成人激情视频| 欧美高清一区二区| 在线免费精品视频| 欧美一区二区三区婷婷月色 | 亚洲综合日韩| 亚洲精品字幕| 欧美电影免费观看高清| 亚洲第一区中文99精品| 亚洲福利在线观看| 久久一二三国产| 久久综合九色综合欧美狠狠| 国精品一区二区| 久久黄色级2电影| 国产精品久久久久久久久婷婷| 91久久香蕉国产日韩欧美9色| 亚洲福利在线看| 免费视频一区| 亚洲第一精品夜夜躁人人躁| 亚洲二区三区四区| 久久这里有精品视频| 欧美成人免费全部| 亚洲黄一区二区| 欧美喷潮久久久xxxxx| 亚洲激情国产精品| 91久久精品www人人做人人爽| 猛男gaygay欧美视频| 欧美激情精品久久久久久久变态 | 蜜桃精品久久久久久久免费影院| 欧美 日韩 国产 一区| 亚洲国产mv| 老司机免费视频一区二区三区| 国产精品爱久久久久久久| 99国产精品视频免费观看| 国产精品99久久久久久白浆小说| 欧美涩涩网站| 欧美一级久久久| 免费国产自线拍一欧美视频| 亚洲电影第三页| 欧美日韩免费精品| 亚洲视频精选在线| 久久精品欧美日韩| 亚洲片在线资源| 国产精品久久久一区麻豆最新章节| 亚洲一区二区三区欧美| 裸体一区二区三区| 亚洲少妇在线| 国产夜色精品一区二区av| 欧美成人四级电影| 亚洲一区在线观看免费观看电影高清| 久久精品系列| 99热这里只有精品8| 国产精品爽爽爽| 欧美.www| 午夜精品久久久久久久99水蜜桃| 麻豆成人在线| 午夜视频久久久| 亚洲精品久久久久久久久久久| 欧美日韩一视频区二区| 午夜视频一区| 最新亚洲电影| 久久综合福利| 午夜天堂精品久久久久| 亚洲激情第一区| 国产日韩一区二区三区在线播放 | 亚洲欧洲精品一区二区三区不卡 | 99精品视频免费观看视频| 欧美日韩一区在线观看| 久久久久久久999精品视频| 99国产精品久久久久久久成人热| 噜噜噜91成人网| 久久精品国产免费观看| 一区二区日韩精品| 在线日韩精品视频| 国产伦精品一区二区| 欧美日韩国产三区| 男人的天堂亚洲在线| 久久国产精品第一页| 亚洲一卡久久| 亚洲午夜精品在线|