首页
社区
课程
招聘
[已解决]CR3读写内存,总是会有PAGE_FAULT_IN_NONPAGED_AREA一般是什么问题造成的
发表于: 2019-5-22 19:06 9728

[已解决]CR3读写内存,总是会有PAGE_FAULT_IN_NONPAGED_AREA一般是什么问题造成的

2019-5-22 19:06
9728
已解决IO分页内存问题
发生问题是随机的,一般速度快时就出现问题了。
蓝屏代码 
PAGE_FAULT_IN_NONPAGED_AREA (50)
Invalid system memory was referenced.  This cannot be protected by try-except.
Typically the address is just plain bad or it is pointing at freed memory.
Arguments:
Arg1: fffff5010f5c9a98, memory referenced.
Arg2: 0000000000000000, value 0 = read operation, 1 = write operation.
Arg3: fffff803c6d3d730, If non-zero, the instruction address which referenced the bad memory
	address.
Arg4: 0000000000000002, (reserved)


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2019-5-26 00:07 被lwbkanxue编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (18)
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
2
一般是牢饭没吃够造成的
2019-5-22 20:13
0
雪    币: 433
活跃值: (1910)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
不要问 问就三年以上
2019-5-22 20:16
0
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
4
萌克力 不要问 问就三年以上
还有几十万罚金
2019-5-22 20:28
0
雪    币: 6124
活跃值: (4661)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
别问 问就是先罚20w
2019-5-22 20:30
0
雪    币: 460
活跃值: (483)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
纯技术技术交流,CR3毛病多。
2019-5-22 21:16
0
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
7
lwbkanxue [em_78]纯技术技术交流,CR3毛病多。
你和前几个人说的话一样,不过他们都去吃国家饭了
2019-5-23 08:06
0
雪    币: 712
活跃值: (121)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
内存释放了吧
最后于 2019-5-23 08:54 被whathhh编辑 ,原因:
2019-5-23 08:53
0
雪    币: 460
活跃值: (483)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
keattchprocess 附加 没问题,CR3就蹦,应该是在切换CR3后出现的问题吧
2019-5-23 10:44
0
雪    币: 3129
活跃值: (3668)
能力值: ( LV8,RANK:158 )
在线值:
发帖
回帖
粉丝
10
本人也遇到过此问题
直接切换cr3过几秒之后cr3就会又恢复原来的值..
猜测可能是内核里面的一条检测线程还原了自身创建线程的CR3,也许是啥各种不合法之类的
翻了一下wrk里面KeAttachProcess的代码,把线程apc->Process改成要附加的那个进程的Eprocess就OK
2019-5-26 21:37
1
雪    币: 367
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
兄弟,切换CR3缺页问题怎么解决的?
2019-11-11 17:13
0
雪    币: 14
活跃值: (948)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
cslime 本人也遇到过此问题 直接切换cr3过几秒之后cr3就会又恢复原来的值.. 猜测可能是内核里面的一条检测线程还原了自身创建线程的CR3,也许是啥各种不合法之类的 翻了一下wrk里面KeAttach ...
好像不OK,我试也是蓝
2020-12-15 14:34
0
雪    币: 3129
活跃值: (3668)
能力值: ( LV8,RANK:158 )
在线值:
发帖
回帖
粉丝
13
妮可 好像不OK,我试也是蓝
是系统线程切换导致的cr3还原
hook swapcontext就行
或者切cr3读写时irql>=2,直接不触发dpc回调
2020-12-16 23:42
0
雪    币: 14
活跃值: (948)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
cslime 是系统线程切换导致的cr3还原 hook swapcontext就行 或者切cr3读写时irql>=2,直接不触发dpc回调
KIRQL oldirql = KeRaiseIrqlToDpcLevel();
DRIVER_IRQL_NOT_LESS_OR_EQUAL
我姿势不对?
2020-12-17 05:02
0
雪    币: 37
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
mb_pgsxqpgq 兄弟,切换CR3缺页问题怎么解决的?
同问
2022-7-28 18:59
0
雪    币: 660
活跃值: (1465)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
lwl
16
这个问题不是很简单嘛,锁页啥的,这不是基本操作,
2022-7-28 19:41
0
雪    币: 37
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
lwl 这个问题不是很简单嘛,锁页啥的,这不是基本操作,
我用MDL锁页之后也会出现同样的情况,或许是我姿势不对?
       Attach();
       PMDL read_mdl = IoAllocateMdl(Address, Length, FALSE, FALSE, NULL);
       __try {
               MmBuildMdlForNonPagedPool(read_mdl);
               PVOID Mapaddr = MmMapLockedPagesSpecifyCache(read_mdl, KernelMode, MmCached, NULL, FALSE, NormalPagePriority);
               RtlCopyMemory(Buffer, Mapaddr, Length);
               MmUnmapLockedPages(Address, read_mdl);
       }
       __except (1) {
       }
       if (read_mdl) IoFreeMdl(read_mdl);
       Detach();
2022-7-29 18:49
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
hzqst 一般是牢饭没吃够造成的
很好奇 别人明明是正常问问题,你为什么总是爱扯到吃牢饭
2022-12-2 03:28
0
雪    币: 1475
活跃值: (14652)
能力值: ( LV12,RANK:380 )
在线值:
发帖
回帖
粉丝
19
很刑啊,越来越有判头了
2022-12-2 07:51
0
游客
登录 | 注册 方可回帖
返回
//