首页
社区
课程
招聘
[下载]2012年11月TP的debugport清零
发表于: 2012-11-5 20:30 10619

[下载]2012年11月TP的debugport清零

2012-11-5 20:30
10619

本文写给想过TP却卡在清零上的盆友,ID暴露了我的水平,所以只介绍方法,原理上一概不知,我接触驱动也不到1个月,本文能带给你的最大收获就是即使你不懂内核,也能过清零。
我介绍的是在XP版本下的开发,之前我使用win7X64,跟着某部视频学就装了xp虚拟机,苦于不会用windbg双机调试,又装了xp双系统,最终是用syser调试的。等终于搞定之后回到win7X64下体验成果时发现根本不用驱动过TP,dnf可以OD随意附加,ce随便查找,od可以下断点,ce也可以写脚本,半个多月白忙活。现在可以回血秒怪,但总出小三,听说这里牛X人脾气都不太好,如果哪位大神来喷,请喷过之后顺便赠送我一下第三方检测原理,您喷的也值,我挨喷也有收获。
先说个过TP最简单的方法,装个64位win7,。
开个玩笑,debugport清零之所以难倒新手,我的经历是网上资料太少,一共就那么几篇帖子,一看日期我就湿了。我跟着学的视频里的方法是bc改0x70,后果不言而喻。
其实TP这么多年来都没啥大的改动,从玩家的体验来说,我觉得是第三方的检测比2年前严格多了,那时可以秒过图,现在就秒掉线了。
目前清零一共有3处,检测2处,还有我就不知道了,因为我只修改这5处就好用。
前两处清零几年没变,我给出2012年11月tessafe.sys的硬编码,以后的人就特征值搜吧。
清零地址1.T+0x5f7f
清零地址2.T+0X2276

第三处我是没有在网上找到资料,会的人都偷着用呢。
清零地址3.T+0x1C47F
之后是2处检测,第一处检测是检测清零1,2代码的,代码修改后重启电脑。开始我不知道啥是CRC,傻傻的把清零1,2直接nop,重启了,函数头c3,又重启了,那时我还分不清蓝屏与重启,以为这个清零是不能动的。其实整个编写驱动过程中我也很少蓝屏,只是无数次重启,终于苦寻到一篇文章说了向64端口写FE的故事,我才发现第一处检测:把清零函数代码从头开始每字节进行一次运算,存在某一地址中,与T中给定值比较,不一样就向64写FE(啥是端口其实我也没整明白)。
检测地址1:T+0x3E3c(函数头)
另一处检测是与清零3成对的,清零3将栈中0弹出到debugport,这句无检测,直接杀死就行。我要说的这处检测是个push,将debugport当前值入栈,之后干啥我就不知道咧,应该是检测是否为0,因为无视这句话后果还是重启。
检测地址2:T+0x1e494
知道是谁在作怪,就好办了。

检测1有一句cmp eax, dword ptr [esi+4],eax里的值就是校验值,下一句je跳改成jmp就行
当然,正规的还是找到代码头,之后ret。(这个函数无返回值。找到函数尾巴,如果有返回值还要返回一个值)
杀死检测1,清零1,2函数头返回(无返回值)就行。
检测2,push dword [edx],[edx]是debugport值,我们hook为直接压入0.这里的hook要注意先判定edx是否为debugport地址,是就push 0,不是就push [edx]。因为这一句代码还有别的用处,全改为push 0就悲剧了。
最后过清零3,方法类似于检测2,判定若edx为debugport地址,直接抬高堆栈即
add esp,4,否则pop [edx]。
说下debugport地址找法,翻阅各大网页,看到n长代码,不想去学,内核级编程太深奥,就巧妙的借用TesSafe.sys中清零代码,必然有debugport值,我用的是这一句代码
“DebugportEprocess=(ULONG)(*(int*)(*(int*)(Tbase+0x12dd8)-0x48)+0xbc);  ”
Tbase是TesSafe.sys基址。
这个方法找的debugport地址在DNF也就是游戏启动之前(即登陆界面)时是DNFchina的debugport,别搞错了,先启动游戏再加载驱动吧。
什么,你不会找T的基址?!那你可以辍学了,我是直接复制别人的代码找的T基址,你要实在不会,就每次启动游戏手动用KD查吧,悲催的孩子!
这个硬编码在TP人员看到之前一般不会变,要是哪一天加载失败了就再特征码吧。不过我相信那时的你要么不再研究这个了,要么写这个已经不在话下了。


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

收藏
免费 6
支持
分享
最新回复 (26)
雪    币: 238
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
写得不错,支持一个.tp以后也会搞64位的
2012-11-6 11:26
0
雪    币: 462
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
下来看看,学习中.............
2012-11-6 18:23
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
帅哥。。。。水平不是问题。。。在于你伟大的分享精神。。。。。
2012-11-6 22:21
0
雪    币: 15
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
云里雾里 多谢共享 比较喜欢这句话 过TP最简单的方法,装个64位win7,。
2012-11-6 22:22
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢楼主分享!!!!!!!
2012-11-11 10:44
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
纸上得来终觉浅。缘知此事要恭行。
2012-11-13 22:37
0
雪    币: 15
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很不错,昨天试了试,成功了,今天电脑修了一下漏洞,就加不了驱动了,不知道怎么回事,我自己研究研究
2012-11-16 18:19
0
雪    币: 3
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
虽然听得不是很懂,但还是感觉很帅气,菜鸟路过
2012-11-16 23:17
0
雪    币: 163
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
楼主,有源码就更好了
2012-11-20 14:51
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
请问楼主,检测函数是如何找到的?
2012-11-23 01:13
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12

BIOS、ACPI 和补丁注意事项

基于 Itanium 的系统必须支持 ACPI 2.0 64 位表。

64 位 Windows 支持 GUID 分区表(GPT)磁盘。

x64 系统上不允许 BIOS 回调。

要与基于 x64 的 Windows 操作系统兼容,驱动程序必须避免以下实践:

修改系统服务表,例如与KeServiceDescriptorTable挂钩。

修改中断调度表 (IDT)。

修改全局描述符表 (GDT)。

使用不是由内核分配的内核堆栈。

修补内核的任何部分(仅限基于 AMD64 的系统)。

Windows 在 x64 平台上强制执行这些规则。任何这种修改都会导致错误检测。
2012-11-24 02:05
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
64位win7,楼主有亲手试过OD下断点吗?我的是不行,问了好多人的也不行
2012-11-30 09:06
0
雪    币: 85
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
tp是什么东东。。。
2012-11-30 09:13
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
不错,写的不错,可以学习学习的
2012-11-30 11:40
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢楼主的分享,学习了
2012-11-30 15:29
0
雪    币: 64
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
mark.
.
2012-11-30 20:22
0
雪    币: 462
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
楼主只说对一半。TP是不起作用。但是不能调试,不能下断点的。我猜腾讯还是在64位上做了点手脚,防止调试。只要用户一调试就会报4026.
所以说,64位下调试无鸭梨,是错误的。
2012-12-1 14:53
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
呵呵,什么时候共享一下附件啊
2012-12-3 08:58
0
雪    币: 508
活跃值: (202)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
20
搞定全局变量就可以搞定TP
2012-12-17 20:30
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
看得云里雾里的  不过还是支持下楼主的分享精神
2012-12-17 20:57
0
雪    币: 5218
活跃值: (3462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
求科普。
2012-12-17 23:58
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
现在 LZ知道那个  T+1c481检测怎么过吗? 透漏下思路白!!!!
2012-12-31 15:47
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
不错,写的不错
2013-1-12 21:56
0
雪    币: 7
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
谢谢楼主分享
2013-1-12 22:24
0
游客
登录 | 注册 方可回帖
返回
//