首页
社区
课程
招聘
[求助] 闲的没事分析Steam 发现个蜜汁BUG
发表于: 2018-9-8 20:20 6067

[求助] 闲的没事分析Steam 发现个蜜汁BUG

2018-9-8 20:20
6067
小老弟近来突发奇想 跟了一手Steam 登录流程
然后手痒写了个hook 发现个蜜汁BUG 具体如下

在Steam中有个神奇的模块 steamclient.dll 这个模块 整体都是 可执行 只读
按照常理来说 
若我直接用R3 拿到句柄 不改内存属性的情况下
是不可能直接写入的
若我用驱动附加 MDL映射 不修改内存属性的情况下
是可以直接读写的

但是 蜜汁BUG来了
我直接在R3 用句柄不改属性 可以正常写入
这可能说是我学艺不精???
但是 我R0 附加之后 分别用 MDL 映射读写 和 直接 copymemory
会得到两个蓝屏结果
MDL 蓝屏报错PAGE_FAULT_IN_NONPAGED_AREA 
各位表格看到肯定骂我蠢 这不就是内存溢出了么 但是 我只映射1字节都会出现这个
直接拷贝内存  则蓝屏报错 SYSTEM_SERVICE_EXCEPTION

好了 有姿势的表哥又会说了 不会改内存属性么
然而 我用ZwProtectVirtualMemory 修改内存属性 结果返回失败 状态码 我忘了记了

希望各位大表哥能开导开导我 因为 我的虚拟机蓝屏dump 都有200条了 感激不尽

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

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 6588
活跃值: (4032)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
登录流程 。。呵呵
2018-9-8 21:02
0
雪    币: 12848
活跃值: (9142)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
3
我来翻译下:请问如何编写驱动级盗号工具?
2018-9-8 21:45
0
雪    币: 103
活跃值: (113)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
hzqst 我来翻译下:请问如何编写驱动级盗号工具?
大表哥过于直白 盗号没兴趣 只是想知道 这个保护效果是什么原理 能实现R0访问就直接蓝屏
2018-9-8 21:57
0
雪    币: 103
活跃值: (113)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
而且最关键的是 R3却正常 感觉像是完全反过来了
2018-9-8 21:58
0
雪    币: 42
活跃值: (208)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
如果你仅仅是读写内存,看在你dump 都有200条了我告诉你,你去了解下CR3大法,R0读写内存很容易的
       KIRQL irql = KeRaiseIrqlToDpcLevel();
       ULONG_PTR cr0 = __readcr0();
       cr0 &= 0xfffffffffffeffff;
       __writecr0(cr0);
       _disable();
再 ExAllocatePoolWithTag。。。。。RtlCopyMemory。。。。。就行了。
2018-9-16 22:10
0
雪    币: 42
活跃值: (208)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
hzqst 我来翻译下:请问如何编写驱动级盗号工具?
hzqst 向来一针见血一剑封侯
2018-9-16 22:11
0
雪    币: 103
活跃值: (113)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
老坛酸菜TM 如果你仅仅是读写内存,看在你dump 都有200条了我告诉你,你去了解下CR3大法,R0读写内存很容易的 KIRQL irql = KeRaiseIrqlToDpcLevel(); ULONG ...
问题 已经找到 r3 之所以无视内存属性读写 是 微软爸爸的设计 为了方便调试器所做的优化 在有足够权限的情况下 是直接可以不需要修改内存属性进行读写的, R0 的问题 我用就是CR3大法 , 至于MDL映射蓝屏 是因为dll COW 原因 导致MDL映射内存失败, Zw修改内存属性失败的原因 是因为回调死锁的原因,总的来说就是代码不严谨,一个BUG导致我陷入了误区之中,谢谢两位大神的指导
2018-9-17 16:36
0
游客
登录 | 注册 方可回帖
返回
//