-
-
[求助]关于暴力搜索内存枚举进程的疑问
-
发表于:
2009-5-15 13:50
5028
-
哪位帮帮我啊。从网上东拼西促的代码。这个函数是用来检查addr虚拟地址的页目录或者页表是不是有效的,也就是检查是不是要访问的页是不是在内存中。但是我用虚拟机调试时,它从0x80000000到system.exe进程对象的地址,都是返回 PDE_INVALID,也就是枚举不到进程。是不是我的系统页目录表不是0xc0300000,而是PAE的那种方式的啊。具体要怎么做啊。附件是源代码,哪位帮忙调试下,看能通过不。我系统是xp3的。
ULONG ValidPage(ULONG addr)
{
ULONG pte;
ULONG pde;
pde = 0xc0300000 + (addr>>22)*4; //根据虚拟地址的高10位得到页目录表地址
if((*(PULONG)pde & 0x1) != 0) //判断0位是否为1
{
if((*(PULONG)pde & 0x80) != 0) //判断7位是否为1
{
return VALID;
}
pte = 0xc0000000 + (addr>>12)*4;
if((*(PULONG)pte & 0x1) != 0)
{
return VALID;
}
else
{
return PTE_INVALID;
}
}
return PDE_INVALID;
}
[课程]Linux pwn 探索篇!