首页
社区
课程
招聘
[旧帖] [求助]分析游戏保护遇到的奇怪问题 0.00雪花
发表于: 2012-7-10 20:28 1316

[旧帖] [求助]分析游戏保护遇到的奇怪问题 0.00雪花

2012-7-10 20:28
1316
有个游戏挂钩了NtDebugActivePrcess里的一个子函数,我在根据索引号定位到NtDebugActivePrcess起始地址,这里假设为0x840549dc,根据硬编码搜索那个子函数,但是只要一用这句话*(ULONG *)0x840549dc就蓝屏出现driver_irql_not _less or equal这个错误,但是如果搜索其他内存地址就没有问题,假设NTopenProcess 地址为0x88888888;
*(ULONG *)0x88888888这样就是正常的,求教大牛,具体是怎么回事
另外本人有采取了很多措施 无论这句话在PASSIVE还是DPC都是蓝屏,而且只蓝屏这个NtDebugActivePrcess函数内部,其他地方不蓝屏,使用自旋锁也不行,保护也关闭了,但是偏偏凑巧有时候会成功那么一下子,之后就一直蓝屏,附上蓝屏代码
          ULONG addr=SSDTIndextoAddr(NTDebugActiveProcess);//显示NTDebugActiveProcess起始4字节
        KdPrint(("%x",*(ULONG *)addr));//蓝屏
          ULONG addr=SSDTIndextoAddr(NTOpenprocess);//显示NTOpenprocess起始4字节
        KdPrint(("%x",*(ULONG *)addr));//没问题

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 338
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
x86下,是有边界检查等机制的
2012-7-10 20:59
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
但是我一开始就定位到了函数头部啊,并没有出函数主体
2012-7-10 21:02
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
求教这个问题是因为什么引起的,可否具体解释一下呢,或者怎么解决这个问题
2012-7-11 15:52
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
最新情况是这样的,我在虚拟机里测试的时候,用KD显示NtDebugActiveProcess这个函数内容,是无响应的,用xt 反汇编函数之后是有响应的也看到了函数内容,之后再用KD就也可以看到函数内容了,完了再加载我的驱动就一点问题都没有了。
分析有二
一  XT让这个函数内容加载到内存,从而不是一开始的空值,但是SSDT表中的函数不是一开始就在内存中的么,我只听过SHADOW表需要附加一下,但是没听过SSDT的需要
二  是不是因为同步或者IRQL的问题,但是我动态跟踪了,也尝试改了IRQL还是不对,希望有大牛出来指点一二
2012-7-11 18:04
0
游客
登录 | 注册 方可回帖
返回
//