题目1:
给定一个线性地址,和长度,读取内容:(运行环境XP)
目前:
可以修该页权限,获得PDE,PTE值,支持跨页检测,以及跨页设置页属性10-10-12)
后续:
补充读取内容 和 2-9-9-12分页模式,跨多页检测
题目要求:
int ReadMemory(OUT BYTE* buffer,IN DWORD dwAddr,IN DWORD dwLeght)
要求:
1)可以自己指定分页方式.
2)页不存在,要提示,不能报错.
3)可以正确读取数据.
实现代码之前 务必使用windbg实现中断提权
kd> eq 8003f500 0040ee00`00081000
实现代码
//release版本 以及 项目属性中选固定基址
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
DWORD g_tmp=0,page_flag =0;
int flag = 0,pde = 0,pte = 0,ppte = 0;
DWORD dwAddr = 0,dwLeght= 0;
DWORD PDI,PTI,OFSET,PDI1,LPTE,LPPTE,LPDE;
//0x401000
void __declspec(naked) ReadMemory() //蓝色字体是告诉编译器函数代码自己去写,不需要编译器添加任何汇编代码
{
__asm
{
mov edx,g_tmp
cmp edx,0
je P1
cmp edx,3
je P2
cmp edx,1
je P2
jmp P3

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



