首页
社区
课程
招聘
[求助]求助,得到虚拟地址PTE的一个困惑。。
发表于: 2010-7-23 15:33 6062

[求助]求助,得到虚拟地址PTE的一个困惑。。

2010-7-23 15:33
6062
我的测试代码如下:

PPTE GetPteAddress( PVOID VirtualAddress )
{
        PPTE pPTE = 0;
        __asm
        {
                cli                        //disable interrupts
                pushad
                mov esi, PROCESS_PAGE_DIR_BASE
                mov edx, VirtualAddress
                mov eax, edx
                shr eax, 22
                lea eax, [esi + eax*4]  //pointer to page directory entry (PDE)
                test [eax], 0x80
                jnz Is_Large_Page        //it's a large page
                mov esi, PROCESS_PAGE_TABLE_BASE
                shr edx, 12
                lea eax, [esi + edx*4]  //pointer to page table entry (PTE)
                mov pPTE, eax
                jmp Done

                //NOTE: There is not a page table for large pages because the PTE's are contained in the page directory.
                Is_Large_Page:
                mov pPTE, eax

                Done:
                popad
                sti                //reenable interrupts
        }//end asm

        return pPTE;

}//end GetPteAddress

0x004da000

Pte = GetPteAddress( pPage); //给个硬编码地址:0x004da000

PET得到为0xC0001386

但是dd 0xC0001386
看到该处值为00000000

这难道意味着该地址不在物理内存中?

我之前已经用了这样的代码确保不会被换出了。。。。
        __asm {       
                mov eax, pPage        // access page in case it is paged out
                mov eax, [eax]
        }

我在写shadowWalker
请问有经验的朋友能看出我的问题出在哪了吗??

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 146
活跃值: (182)
能力值: ( LV13,RANK:220 )
在线值:
发帖
回帖
粉丝
2
开没开PAE?
2010-7-23 15:35
0
雪    币: 53
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
开启PAE时不是要在boot.ini中加入/PAE启动参数?
我的没有。
2010-7-23 15:51
0
雪    币: 53
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
调了下ollybone
也是这个效果...

是不是调试对于shadow walker这类关于缺页处理的程序有影响..?
2010-7-23 17:24
0
雪    币: 162
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
按照你的程序来看,由0x004da000得到的应该是0xC0001368吧?
2010-7-23 22:44
0
雪    币: 53
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
呃...是的..笔误..
2010-7-26 15:22
0
雪    币: 146
活跃值: (182)
能力值: ( LV13,RANK:220 )
在线值:
发帖
回帖
粉丝
7
在windbg看看这个地址的pte是多少楼,和你的不一样就是你的程序错了

一般都是默认开pae的,我的电脑右键看看就知道了
2010-7-31 09:12
0
游客
登录 | 注册 方可回帖
返回