首页
社区
课程
招聘
[求助]MDL映射问题
2017-10-20 13:11 5063

[求助]MDL映射问题

2017-10-20 13:11
5063
Attach后用MDL修改指定进程内存 修改完后取消映射了 但是进程下次启动的时候他还会有效是怎么回事

PMDL NTAPI IoCreateWriteMdlForAddress2(PVOID InAddress, PVOID *OutAddress, size_t Size)
{
 if ((InAddress == NULL) | (Size == 0))
  return NULL;  PMDL pMdl = IoAllocateMdl(InAddress, Size, FALSE, FALSE, NULL);
 if (pMdl == NULL)
  return NULL;  MmProbeAndLockPages(pMdl, KernelMode, IoReadAccess);  pMdl->MdlFlags |= MDL_MAPPED_TO_SYSTEM_VA;  *OutAddress = MmMapLockedPagesSpecifyCache(pMdl, KernelMode, MmCached,NULL,FALSE, NormalPagePriority);  return pMdl;
}
VOID NTAPI IoFreeMdlForAddress(PVOID OutAddress, PMDL pMdl)
{
 MmUnmapLockedPages(OutAddress, pMdl);
 //MmUnlockPages(pMdl);
 IoFreeMdl(pMdl);
}



[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 81
活跃值: (40)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
XiaoyDelog 2017-10-20 13:21
2
0
要用ZwWriteVirtualMemory来修改,MDL会绕过Copy-On-Write,
雪    币: 12
活跃值: (388)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
MaMy 2017-10-24 14:15
3
0
COW失效了....如楼上所说

只读的话 官方方法是 ZwProtectVirtualMemory,
需要自己从SSDT找地址
雪    币: 52
活跃值: (257)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Indexs 2017-10-26 00:46
4
0
MaMy COW失效了....如楼上所说只读的话 官方方法是 ZwProtectVirtualMemory,需要自己从SSDT找地址
拿不到句柄哇~~~  所以我才想用Attach
雪    币: 208
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
忆柳 2017-10-26 01:25
5
0
都获取到EPROCESS还获取不到句柄么........
雪    币: 81
活跃值: (40)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
XiaoyDelog 2017-10-26 08:50
6
0
ObOpenObjectByPointer:EPROCESS->Handle
雪    币: 307
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
冰栈 2017-10-30 17:20
7
0
问一下,在内核中这么打印缓冲区中的数据啊?
雪    币: 5023
活跃值: (2506)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
FaEry 6 2017-10-30 17:59
8
0
一楼正解!  LZ要弄清这些API的原理啊
游客
登录 | 注册 方可回帖
返回