- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章内存管理部分1
标 题: 【原创】windows下32位汇编语言学习笔记 第十章 内存管理部分 1作 者: jasonnbfan时 间: 2009-05-19,21:25:54链 接: /showthread.php?t=89301windows下32位汇编语言学习笔记?第十章?内存管理部分前面5?6?7?8?9章都是介绍windows界面设计有关的内容,这些内容大概看一下就可以,等需要用的时候再回过头来查。一次性记住的可能性不大。这些章节也没有什么难度,自己看看就可以。我所关心的还是windows系统相关知识,说道界面设置,对RC资源再熟悉做界面还是Delphi,C++builder比较快速。本章介绍了很多windows下关于内存管理的函数,书上有句话说的很好,不要去深究这些函数分配的内存具体放在内存寻址空间的什么地方,只需要知道什么时候该用什么类型的内存管理函数就可以。Global标准内存管理GlobalAlloc函数使用GMEM_MOVEABLE参数返回的是个内存句柄,内容是一个地址,这个地址才是可以使用的内存块。比如:PVOID?lpMem?=??GlobalAlloc(GHND,?1000);现在lpMem指向的内容是一个地址,必须通过GlobalLock(lpMem)函数返回这个指针才能使用。实际上GMEM_MOVEABLE参数和GMEM_FIXED区别就是前者必须要经过GlobalLock才能使用,后者则通过返回的指针直接使用。关于什么时候可移动,我没法测,不知道windows在什么情况下去移动这块内存。GlobalAlloc分配内存是紧凑的,就是说分配的多个内存空间可以放在一个内存页面里,只要能放的下。Heap堆内存管理Heap内存管理非配基本上和Global的用法相当,一般的用法都是GetProcessHeap得到进程默认堆,然后HeapAlloc分配。虚拟内存管理有一点必须知道,VirtualAlloc,所分配的空间都是页对齐的,分配1字节的内存空间也会占用4096字节的一个内存页,再次使用VirtualAlloc分配内存会从新的一页开始。每个虚拟内存页面有三种状态:Free:自由状态,Commit:提交状态,Reserve:保留状态。八种保护属性:PAGE_NOACCESS,PAGE_READONLY,PAGE_READWRITE,PAGE_EXECUTE,PAGE_EXECUTE_READ,PAGE_EXECUTE_READWRITE,PAGE_EXECUTE_WRITECOPY,PAGE_WRITECOPY这八种属性在第一章的笔记里有介绍。虚拟内存页面还有4种类型Free:空闲,没有提交也没有使用的。Private:私有,该区域的虚拟地址和系统页文件关联。Image:映像,改区域的虚拟内存地址和exe文件或dll文件关联。Mapped:映射,改区域的内存和其他硬盘上的文件关联。这些页面的属性,类型,状态,就是80386保护模式下,windows系统管理虚拟内存的机制。虚拟内存管理函数中提供了几个可以操作其他进程虚拟地址的函数。LPVOID?VirtualAllocEx(HANDLE?hProess,LPVOID?lpAddress,SIZE_T?dwSize,DWORD?flProtect)这个函数可以在别的进程空间保留或者提交一块内存。比如DLL的远程注入就是使用这个函数在目标进程开辟一块虚拟内存空间,将要注入的dll名通过WriteProcessMemory函数写进目标进程的虚拟内存空间,然后再通过CreateRemoteThread函数运行LoadLibraryA加载写入的dll文件,LoadLibraryA函数位于kernel32.dll中,由于每个进程运行都会加载这个dll,所以LoadLibraryA函数在不同进程中的地址是一样的,可以直接再目标进程使用。比如下面的例子://?向目标进程地址空间写入DLL名称DWORD?dwSize,?dwWritten;dwSize?=?lstrlenA(?lpszDll?)?+?1;LPVOID?lpBuf?=?VirtualAllocEx(?hProcess,?NULL,?dwSize,?MEM_COMMIT,?PAGE_READWRITE?);if?(?NULL?==?lpBuf?){?????CloseHandle(?hProcess?);????//?失败处理}if?(?WriteProcessMemory(?hProcess,?lpBuf,?(LPVOID)lpszDll,?dwSize,?dwWritten?)?){????//?要写入字节
您可能关注的文档
- 婴童企业如何走七招杀出重围.doc
- 2007信息技术与英语教学文摘.doc
- 化学反应进行的方向-lgx.ppt
- HP控制说明.doc
- jQuery.js执行过程分析.doc
- 通风空调附图及案例.doc
- 【精品PPT课件】《VisualC++程序设计》第9章继承抽象类.ppt
- 多媒体作品设计竞赛参赛作品规范.doc
- 11考研英语精选必背10年真题范文.doc
- 0Oymbl《计算机网络与通信》教学大纲.doc
- 债券市场发行规模创新高 创新产品助力国家战略——2024年中国债券市场发行分析与2025年展望 -新世纪.docx
- 【NIFD季报】2024年度全球金融市场 -供给紧约束下的美国经济新平衡.docx
- 【飞瓜月报】2025年01月短视频及直播电商营销月报.docx
- 变电站验收要点.docx
- 从0到1学会使用Deepseek.docx
- 厦大团队:大模型概念、技术与应用实践.docx
- 光伏出海数字营销速成手册_final.docx
- 大中华区租户研究 -中国企业加快“走出去”步伐:走上世界经济舞台 2018.docx
- 2025年脑机接口蓝皮书:未来将至,打造人机交互新范式.docx
- 中国国际经济贸易仲裁委员会域名争议解决2024年度回顾.docx
最近下载
- 居住区规划设计.ppt
- 《汤姆 · 索亚历险记》阅读测试题及答案 .docx VIP
- 小升初阅读技巧剖析——+文言文阅读(课件)-部编版语文六年级下册.pptx VIP
- HG_T 3731-2023 非金属化工设备 玻璃纤维增强聚氯乙烯复合管和管件.docx VIP
- 小学科学六年级下册全册 .pdf VIP
- 《世说新语系列》课件.pptx VIP
- 工程项目居间合同协议.docx VIP
- Unit 2 No Rules, No Order复习课件P2-人教版七下英语2024.pptx VIP
- EPSON,爱普生EPSON SC POS Application Programming Guide说明书用户手册.pdf
- 2024-2025学年北京海淀区四年级(上)期末英语试卷.pdf
文档评论(0)