pe文件被装入内存时按64k对齐
生活随笔
收集整理的這篇文章主要介紹了
pe文件被装入内存时按64k对齐
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
看羅云彬的win32匯編,看到搜索kernel32.dll基址問題的時候,有點小問題,書上說:
主程序從堆棧得到的返回地址,將其作為參數傳遞過來,然后按64k對齊,也就是與0ffff0000h進行and操作,然后按頁搜索時,遞減10000h!
為什么按64k對齊呢?咋不按內存中一頁大小對齊呢?還有為啥要遞減10000h呢?納悶啊。。。于是百度+google,老費勁地找到答案了。。。請看這段話!
“對于加載到程序中的模塊,基址都是對齊的,你自己可以用調試器看一下,程序中各個模塊包括dll和程序本身,加載進去的基址十六進制末四位都是0,也就是0xxxx0000H,也就是PE頭會出現在這些地址附近,所以減去10000加快搜索效率”
相信你已經明白了吧!10000h就是64k!^_^呵呵,是偶太菜嘍,不過假如你也和我一樣不懂的話,希望能對你有點幫助!O(∩_∩)O
?
?
同樣的疑問在看雪找到了答案:轉:http://bbs.pediy.com/showthread.php?t=99859
?
轉載于:https://www.cnblogs.com/this-543273659/archive/2012/05/16/2505366.html
總結
以上是生活随笔為你收集整理的pe文件被装入内存时按64k对齐的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jquery-core.holdRead
- 下一篇: 10个最“优秀”的代码注释