Windows进程的内存映射如何?
这可能是一个重复的问题.我想知道一个
windows进程的内存映射怎么样?我正在寻找细节.请提供博客,文章和其他相关文献的链接.
我总是喜欢实际看到的东西,而不只是读理论.事实证明,根据
this blog post,如果您使用windbg打开程序,即使它不运行,仍然映射到地址空间,就像它一样.因此,您的反汇编窗口比喻(不保证在这些确切的地址加载您的代码)显示这些地址在代码方面是什么:
当然,由于ASLR,您不能保证这些地址,但它给您一个想法/让您思考:内存地址也只是代码.根据大多数现代计算机实现的Von Neumann架构,代码和内存存储在相同(虚拟)空间中.不幸的是,因为没有堆栈,堆等你不能移动,看看那些. 此blog post from Microsoft为您提供了虚拟地址空间的高级概述.正如你所看到的,其中一半被保留供操作系统使用,另一半可以填充任何内容(代码,malloc调用,堆栈分配等). 关于地址空间在用户端的工作方式,this diagram帮助我理解了.它链接了in this question,它为不同的可能的地图提供了一系列体面的链接.记住,内存中的布局将在部件方面有所不同. 要记住的一个重要的一点是,所有这些,程序,数据,堆栈,堆,内核的东西都是一个大的顺序系列的内存地址,尽管这些可能或可能不会实际转化为实际的内存地址. 尽管如此,您可能也会对可执行文件在磁盘上的显示感兴趣. This article和this article particularly提供了一些对PE文件格式的深入分析.后一篇文章还有一个图表,大致显示了数据是毫米. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- active-directory – Windows域控制器的云托管,可能吗?
- 外语Windows安装和语言包之间有区别吗?
- winapi – 当你可以使用RET时,为什么在Win32下需要ExitProc
- .net – System.ServiceModel.DomainServices.EntityFramew
- Windows Server 2016 与 Linux 的网络性能对比测试
- 在Windows,Visual C 2008上安装LEX / YACC或flex / bison
- 试图让异步在Windows C应用程序中工作
- active-directory – Windows服务器.组织单位和团体之间的区
- 阻止System.Window.Forms.ComboBox(C#)的AutoSelect行为
- media-player – 如何在WP 8.1中访问媒体库?
- windows-server-2008 – IIS可以从GPU核心创建线
- windows-8 – 如何为Windows 8应用程序提供3个初
- windows-7 – 自动安装Microsoft Update实用程序
- .net – EntityFramework.dll与System.Data.Enti
- windows-server-2008 – 远程桌面服务远程音频问
- windows – 无法使用powershell重命名计算机
- 在我的DLL中的Delphi中,我必须分配一个函数的ret
- windows-phone-7 – 在Windows Phone 7系列中录制
- .net – 无法加载DLL’SqlServerSpatial.dll’
- 在系统管理的“Windows方式”上为Linux专家预订建