首页
社区
课程
招聘
[求助]学习apc方式ring0调用ring3的问题
发表于: 2008-11-14 10:51 7101

[求助]学习apc方式ring0调用ring3的问题

2008-11-14 10:51
7101
是火影大大的文章http://bbs.pediy.com/showthread.php?t=63179
文中有这样的代码:
KeStackAttachProcess((ULONG *)pTargetProcess,&ApcState);//进入目标进程的上下文
pMappedAddress = MmMapLockedPagesSpecifyCache(pMdl,UserMode,MmCached,NULL,FALSE,NormalPagePriority);

我的疑问是MmMapLockedPagesSpecifyCache本身不就是映射跟用户进程的共享内存吗,以前驱动跟应用程序使用共享内存通信的时候,不都直接用MmMapLockedPagesSpecifyCache就可以了,不是都没有attach到我们想要通信的进程上面吗。。。所以我就想apc方式是不是也没有必要再用KeStackAttachProcess了,但是我在这个程序里面去掉KeStackAttachProcess调试,windows会弹出explore.exe数据执行保护。。。。想不通为什么,请大大指点

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
2
你需要在你要注入的进程里面分配一块内存,然后创建MDL,来写这块内存. 不attach的话. 你就没有写进去.必然执行APC的时候EXPLORER就崩掉了...
2008-11-14 13:37
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那为什么以前写驱动跟应用程序使用共享内存通信的时候,都可以不attach,直接用MmMapLockedPagesSpecifyCache,我们应用程序都可以读得出来呢
2008-11-14 14:20
0
雪    币: 354
活跃值: (10)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
4
因为驱动跟应用程序通信的时候就是在与之通信的应用程序的上下文中。。。
2008-11-14 15:06
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢两位大大回答。。。
驱动跟应用程序通信的时候就是在与之通信的应用程序的上下文中。。。呃。。。有这种说法吗。。。。我可以这么理解吗:比如说驱动捕捉到IRP_MJ_DEVICE_CONTROL后来到某处理例程函数里面,现在这个例程函数里面就处在应用程序的上下文???
2008-11-14 15:34
0
雪    币: 234
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
应该是这样理解的吧。。至少我就是这样理解的。。谁掉的这个驱动,这个驱动就运行在谁的上下文当中
2008-11-14 22:27
0
雪    币: 220
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
pMdl描述了用户地址空间的内存,是在特定进程上下文中的,也就是你要投递apc的那个进程,所以要attach
2008-11-15 09:53
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
多谢ls几位的热心帮助。。。
2008-11-15 12:23
0
游客
登录 | 注册 方可回帖
返回
//