首页
社区
课程
招聘
[求助]关于OllyBone里面的GetPteAddress,请用过的帮下忙
发表于: 2008-11-26 12:25 7081

[求助]关于OllyBone里面的GetPteAddress,请用过的帮下忙

2008-11-26 12:25
7081
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
                test [eax], 0x80        //is it a large page?
                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 phys frames are contained in the page directory.
                Is_Large_Page:
                mov pPTE, eax

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

        return pPTE;

}//end GetPteAddress

用这段代码出了问题 会引起蓝屏
看了下应该是下面的地方出的问题               
test [eax], 0x80        //is it a large page?
也就是当前的地址不能读取 请问为什么出现这个问题

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是pae的问题 去掉电脑里的物理内存扩展就能用了
2008-11-26 14:29
0
雪    币: 143
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
如何去掉的?
2009-7-19 00:10
0
游客
登录 | 注册 方可回帖
返回
//