首页
社区
课程
招聘
未解决 [求助]使用mdl 读写内存的问题
发表于: 2019-6-13 16:53 7065

未解决 [求助]使用mdl 读写内存的问题

2019-6-13 16:53
7065
input 是用户层内存
auto vMdl = IoAllocateMdl((void*)vInputData->Inputs, vInputData->InputBytes * vInputData->InputCount, FALSE, TRUE, NULL);
申请mdl后

调用MmProbeAndLockPages(vMdl, UserMode, IoReadAccess);  如果第三个参数是 IoWriteAccess 就会蓝屏,Bad_Pool

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1044
活跃值: (1385)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
2
写东西之前都不看官方例子的么?
c96K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0K9h3y4J5L8%4y4G2k6Y4c8Q4x3V1k6i4K9h3&6V1L8%4N6K6i4K6u0V1k6s2u0A6N6X3g2J5i4K6u0V1M7$3q4E0M7r3I4W2M7#2)9J5c8Y4c8J5k6h3g2Q4x3V1k6E0j5i4y4@1k6i4u0Q4x3V1k6Y4k6h3&6W2M7X3q4D9i4K6u0r3K9h3!0U0N6r3I4Q4x3V1k6%4k6r3@1`.
2019-6-13 17:57
0
雪    币: 183
活跃值: (751)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

            irp->MdlAddress = IoAllocateMdl( Buffer,
                                             Length,
                                             FALSE,
                                             FALSE,
                                             NULL );

            if (irp->MdlAddress == NULL) {
                IoFreeIrp( irp );
                return (PIRP) NULL;
            }

            try {
                MmProbeAndLockPages( irp->MdlAddress,
                                     KernelMode,
                                     (LOCK_OPERATION) (MajorFunction == IRP_MJ_READ ? IoWriteAccess : IoReadAccess) );
            } except(EXCEPTION_EXECUTE_HANDLER) {
                  if (irp->MdlAddress != NULL) {
                      IoFreeMdl( irp->MdlAddress );
                  }
                  IoFreeIrp( irp );
                  return (PIRP) NULL;
            }
2019-6-13 22:37
0
雪    币: 712
活跃值: (121)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢大佬们的回答
2019-6-14 09:15
0
游客
登录 | 注册 方可回帖
返回