Windows 95 System Programming SECRENTS学习笔记(一)[10]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 kendiv 的 blog

    如上图所示,imtes构成了全局模块数组,该数组所使用的内存是从kernel32 heap中分配而来的。系统使用heapalloc来分配一块内存。当新的模块加入时,kernel32使用heaprealloc动态扩展全局数组。当内核(kernel32)产生一个新的imte,它会搜寻pmoduletablearray中的空白元素,找到一个,就把imte指针放进去。这个元素的索引值稍后在我们探索modrefs时将扮演重要角色。pmoduletablearray的第一个元素(索引为0)用来表示kernel32.dll模块。

 

   pmoduletablearray中的每一个非零元素都代表系统中一个被加载到内存的exe或者dll。每一个这样的元素都是一个imte指针(在伪代码中我以pimte表示)。虽然,module database的格式是公开的(实际上就是image_nt_headers结构),但imte的格式并没有公开。

笔记:

本文关键:Windows 95 System Programming SECRENTS学习笔记(一)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top