03 2022 档案
摘要:SECTION OBJECT 内存区对象 在VAD树节点中除了进程通过VirtualAlloc申请的私有的(privated)内存块之外就是用于多个进程间共享内存的SECTION对象(mapped内存块)。 nt!_SECTION_OBJECT +0x000 StartingVa : Ptr32 V
阅读全文
摘要:VAD树 应用层进程会通过调用VirtualAlloc分配多个内存块,每个内存块包含1个或多个内存页。windows操作系统为了有效的管理这些内存块构建了一个AVL二叉树,这个AVL树就是VAD树。应用层的每一个内存块(包含VirtualAlloc申请的私有的和Mapping共享的)都对应一个VAD
阅读全文
摘要:4级分页 因为硬件限制64位系统只使用64位虚拟地址的低48位,48位虚拟地址被分为9-9-9-9-12,4个9分别表示PML4T,PDPT,PDT,PTT的PFN页帧编号(与物理页帧区分) PML4T,PDPT,PDT,PTT的每一项都是8个字节,CR3指向的是PML4T(Page Map Lev
阅读全文
摘要:静态基址 静态基址是指程序中实现定义好的数据(全局数据或局部数据),这种地址在程序每一次加载时都是唯一的不会变化(不考虑ALSR,如果存在ALSR则静态地址相对于程序基地址的偏移不会变)。 动态基址 动态基址是指程序中通过new或者malloc从堆中申请返回的地址,这种地址在程序每一次加载时都可能会
阅读全文