-
-
[求助]内存地址问题--看过SDTrestore的指教一下
-
发表于:
2008-12-27 21:32
5055
-
[求助]内存地址问题--看过SDTrestore的指教一下
学习SDTrestore时候,遇到一些问题,请高手指教一下
1、
DWORD kernelPhyBase = GetKernelBase() - PROT_MEMBASE;
//#define PROT_MEMBASE 0x80000000
// ntoskrnl的物理地址减去0x00400000是什么意思啊?
// kernelOffset代表什么具体含义啊?
DWORD kernelOffset = kernelPhyBase - peXH2.imageBase;// peXH2.imageBase=0x00400000
2、
DWORD *fileServiceTable = (DWORD *)((DWORD)exeAddr + wantedAddr - kernelOffset - peXH2.imageBase);
用vc跟了一下,
//fileServiceTable:00b3b6c8映射进用户空间的SSDT地址
//为何ssdt内的不是虚拟地址,而是物理地址呢?如下:
//fileServiceTable[0]=004a838e,fileServiceTable[1]=004a1c0c,......
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!