首页
社区
课程
招聘
[求助]请教ring0下如何读/写ring3内存
发表于: 2008-7-24 19:42 9946

[求助]请教ring0下如何读/写ring3内存

2008-7-24 19:42
9946
我的目的是:

/*====================driver中===========*/
if( !strcmp(ProcessName, "target.exe") )
{
        WriteTargetProcess(offset,buffer,size);
        ReadTargetProcess(offset,buffer,size);
}
/*====================================*/

现在我自己知道存在几个问题:

ring3下都是虚拟地址,如何把虚拟地址buffer转换成物理地址?
感觉涉及到内存分页机制,具体不知道怎么弄,望高手提示一二(最好有参考资料),谢谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 108
活跃值: (141)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
2
KeAttachProcess切过去,直接读你要的地址就可以了。
2008-7-24 19:45
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
我看了一些文章,貌似KeAttachProcess();之后相应进程里的数据可直接读取了。比如:*(ULONG *)0x0401000 = 0xEBFFFFFF;

但:
KeAttachProcess();
KeDetachProcess();
两个函数的地址如何获取?

不想再开新贴了,望高手赐教!
2008-7-24 20:00
0
雪    币: 287
活跃值: (102)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
声明一下就可以用料
2008-7-24 20:30
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
谢谢大家!已测试成功!

另外还有个小问题,就是KeAttachProcess();之后能否直接对ring3函数进行调用?

如:
////////////////////in ring 3/////////////////////

0x401000:
push ebp
mov ebp,esp

xxxxxxxxxxx

pop ebp
ret
///////////////////////////////////////////////////

////////////////////in ring 0/////////////////////
KeAttachProcess();
call 0x401000
///////////////////////////////////////////////////
2008-7-24 20:53
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
6
修改PTE。然后patch掉即可.
----------------------------------
R0下的不能调用R3下的任何函数.
2008-7-24 22:02
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
7
只要ring3的函数不会搞出bsod就可以调
2008-7-25 11:20
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
8
那只不过是R0 CALL R3
方法多种多样...
2008-7-25 11:39
0
游客
登录 | 注册 方可回帖
返回
//