滴水内核中级班阶段测试题

题目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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值