摘要: 操作系统的内核模块根据处理器的个数和是否支持PAE(Physical Address Extension物理地址扩展)分为以下四种 ntoskrnl.exe ---Uniprocessor单处理器,不支持PAE ntkrnlpa.exe ---Uniprocessor单处理器,支持PAE ntkrnlmp.exe ---Multiprocessor多处理器,不支持PAE ntkrpamp.exe ---Mulitiprocessor多处理器,支持PAE操作系统实际上加载的内核模块只能是上述四种中其中的一种本文介绍的方法比较通用,没有局限性,可以正确的获得系统内核的基地址,主要方法有以下几种:通 阅读全文
posted @ 2012-11-05 16:22 unixstudio 阅读(5836) 评论(1) 推荐(1) 编辑
摘要: 只要稍微熟悉PE结构就能很快写出来,GetProcAddress的原型如下FARPROC WINAPI GetProcAddress(HMODULE hModule,LPCSTR lpProcName) hModule是指模块的基地址,比如用LoadLibrary加载dll返回的地址 lpProcName顾名思义就是函数或者变量的名称,但也可以是函数或者变量在模块中的序号(ordinal)本文实现的GetProcAddress没有实现序号的功能,仅仅是通过名字字符串来得到地址,主要是因为dll版本的不同会导致序号发生改变,因此这里不提倡使用序号来获取地址(虽然序号可以不用通过查找而直接获得地址 阅读全文
posted @ 2012-11-05 01:23 unixstudio 阅读(768) 评论(0) 推荐(0) 编辑