首页
社区
课程
招聘
[原创]tersafe的二个致命bug(仅技术讨论请务从事非法活动)
发表于: 2010-6-9 21:35 7061

[原创]tersafe的二个致命bug(仅技术讨论请务从事非法活动)

2010-6-9 21:35
7061
tersafe的两个hook不能用工具直接恢复的,一个是ntopenxxx和kiattahcprocess(write和read还有shadow里面的可以用工具直接x掉)
但是这两个麻烦的东西,居然都有大bug。。。
看了坛子里面一个老大的的tersafe破文和相关的代码后,看到他在处理ntopenprocess和ntopthread部分,在ObOpenObjectByPointerAddr前hook,绕过后,判断调用者是不是tersafe相关的自己人(就是游戏),选择是回去执行tersafe的代理代码,还是直接调用ObOpenObjectByPointerAddr ,
我在处理中发现了tersafe的一个bug,实际上是不需要这么麻烦处理的

tersafe驱动中搜索ntopenprocess和thread的代码,发现e8,并且调用地址同ObOpenObjectByPointerAddr 的时候,就讲这个e8 call的地址修改成自己的代理函数
然后开启这部分的检查

tersafe在这个搜索和检查过程中有个bug,当找不到这部分的时候,tersafe就不hook了。。并且不检查这部分代码了。。。并且tersafe本身那种要求自己的代理函数调用几次的检查也没有了。。

所以我们没必要在ObOpenObjectByPointerAddr 之前做jmp,然后判断是否合法来做,直接在tersafe驱动启动前,加载自己的驱动,将这部分先改了,就可以不用管了。。。

至于kiattachprocess也是的,tersafe通过获取keattachprocess的地址,然后在ke中搜索ki的调用,进入ki后修改头几个字节,然后jmp,,,那如果搜不到呢。。。哈哈,又没有了。。。

第一个bug已经自己写驱动测试过了,,是可以的,想自己试的,用xuetr也可以试(xuetr也是hook的ntopenxxx的和tersafe同样的地址,如果先开xuetr,那tersafe就傻了。。)
第二个正在写来试试,不过从他驱动逆向代码来看,是可以的。。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 419
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
早就发现了,还有HOOK成功,就往某个内存写1,所以.............

pass系列就提现这思想

那清0才好玩
2010-6-9 22:11
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
TX的驱动保护吗?
2010-6-9 22:33
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
debugport那个,除了修改相关dbg函数访问debugport的指针不知道能不能修改tersafe的,修改代码是肯定不行的,tersafe有自校验,如果把threadcontext拷贝后,用dr寄存器修改流程,直接跳过tersafe
xchg eax,[ecx]那一句不知道行不行,
2010-6-9 22:57
0
雪    币: 25
活跃值: (477)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
5
先启动XUETR就可以调试游戏?我想知道  TX的驱动防多开的原理 呵呵
2010-6-10 10:10
0
雪    币: 25
活跃值: (477)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
6
DBGPORT哪个  SOD好象自己做了处理了吧,有必要还去找其他方法吗?
2010-6-10 10:12
0
游客
登录 | 注册 方可回帖
返回