惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Exploit Database - CXSecurity.com
A
Arctic Wolf
K
Kaspersky official blog
T
Threat Research - Cisco Blogs
PCI Perspectives
PCI Perspectives
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
U
Unit 42
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy & Cybersecurity Law Blog
O
OpenAI News
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Cisco Blogs
AWS News Blog
AWS News Blog
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
美团技术团队
T
Threatpost
S
Schneier on Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
Cyber Attacks, Cyber Crime and Cyber Security
Last Week in AI
Last Week in AI
C
CERT Recently Published Vulnerability Notes
Blog — PlanetScale
Blog — PlanetScale
C
Cybersecurity and Infrastructure Security Agency CISA
F
Full Disclosure
博客园_首页
N
Netflix TechBlog - Medium
Security Latest
Security Latest
有赞技术团队
有赞技术团队
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Register - Security
The Register - Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Recent Announcements
Recent Announcements
博客园 - Franky
P
Palo Alto Networks Blog
Project Zero
Project Zero
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
H
Help Net Security
Hacker News: Ask HN
Hacker News: Ask HN
Cisco Talos Blog
Cisco Talos Blog
H
Heimdal Security Blog
The Hacker News
The Hacker News
博客园 - 【当耐特】
GbyAI
GbyAI

博客园 - 悠然小调

nothing.... Ogre中在SceneNode节点旁显示二维字的代码 博文阅读密码验证 - 博客园 最简单的智能指针原理 模板的特化 计算基类虚表指针在派生类中的偏移量 写一个内存拷贝函数 [转]来自 COM 经验的八个教训 COM本质论学习笔记(一)IDL winsock中select的作用 windows核心编程学习笔记(三)线程池(Thread Pooling) windows核心编程学习笔记(八)结构化异常处理(Structured Exception Handling) [转]亲密接触VC6.0编译器 windows核心编程学习笔记(七)DLL Injection and API Hooking windows核心编程学习笔记(五.续)堆 windows核心编程学习笔记(五)内存映射文件 windows核心编程学习笔记(二)Wait For Kernel Object(s) windows核心编程学习笔记(一)使用Critical Section [转]筛选法求素数
windows核心编程学习笔记(四)windows内存结构/虚拟内存/线程的堆栈
悠然小调 · 2008-03-02 · via 博客园 - 悠然小调

1.虚拟地址空间的大小
•32位系统每个进程的虚拟地址空间是0x00000000 - 0xFFFFFFFF, 4GB,其中 从 0X80000000 - 0xFFFFFFFF为系统为内核占用;
•64位系统每个进程的虚拟地址空间是0x0000000000000000 - 0xFFFFFFFFFFFFFFFF, 16EB,其中 从 0X0000040000000000 - 0xFFFFFFFFFFFFFFFF为系统为内核占用;

2.只说32位系统的虚拟地址空间分配情况
•0x00000000 - 0x0000FFFF: 这段内存是空指针区,同时肯定是不可访问的;
•0x00010000 - 0x7FFEFFFF: 这段是给进程用的,包括有的数据、exe和dll模块,以及内存映射文件;
•0x7FFF0000  - 0x7FFFFFFF: 这64K的区域是禁止访问的,因为紧挨着它就是内核地址,如果中间没有这个阻拦的话,你可以用一个很长的数据覆盖到内核区域,以破坏内核的完整性和正确性——这是不允许的,试图改写该区域,会产生异常,以阻拦进一步读写内核区域;
•0x80000000 - 0xFFFFFFFF: 内核区域。用于线程调度、内存管理、文件系统支持、网络支持和所有设备驱动程序的代码全部在这个分区加载。驻留在这个分区中的一切均可被所有进程共享。也就是说实际上进程可用的地址空间大小为2G - 128K.

3.页面和页面文件
•页面是物理内存中内存单位,方便管理,在x86上是4K(4096字节);
•页面文件是位于物理磁盘上的一个文件,用于暂存物理内存中许久不用的内存的一个缓冲区,用来解决物理内存通常比较小的问题.它也按照4K一个页面的规则划分,目的是可以让物理内存页面和文件中的页面可以方便的互换.

如果要分配一块内存使用,用VirtualAlloc,这将把物理内存上的一块区域映射到虚拟地址空间的同等大小的区域中,如果你Alloc了128K,那么你的可用物理内存将减少128K(前提是MEM_COMMIT)。如果不再使用这段内存,调用VirtualFree,其结果是断开和虚拟地址空间的映射,导致可用物理内存增大128K.

4.保护属性
没啥好说的,需要留意的是PAGE_WRITECOPY、PAGE_EXECUTE_WRITECOPY和PAGE_GUARD.

5.数据对齐
数据对齐是CPU的特性,如果访问一个WORD类型,那么它的起始地址最好能被sizeof(WORD)也就是2整除,此时CPU才获得最好的执行效率,同理DWORD的起始地址就要被4整除,那char数组呢?应该是任意

6.虚拟内存
查询内存使用状态用GlobalMemoryStatus(Ex)
查询某个进程虚拟地址空间的信息用VirtualQuery(Ex)

1).VirtualAlloc(Ex)和VirtualFree(Ex)

注意:当使用这2个函数时,被操作区域的地址总是被自动对齐到64K的边界上,同时操作的大小(dwSize)也总是被对齐到4k的页边界上。

2).Address Windowing Extensions (Windows 2000 only)

需要对这些函数的用法了如指掌,尤其是各种参数的意义(MEM_RESERVE\MEM_COMMIT\MEM_DECOMMIT\MEM_RESET\MEM_RELEASE等等).