首页
社区
课程
招聘
[半原创]Win7x64系统过TP的一些尝试和目前遇到的问题
发表于: 2014-10-6 18:42 36989

[半原创]Win7x64系统过TP的一些尝试和目前遇到的问题

2014-10-6 18:42
36989

其实渣新学内核编程不过半个月时间,帖中难免有幼稚的想法和错误,遇到的问题我会用蓝色文字表述,还请各位前辈指正,感激不尽!

这贴算是半原创吧,毕竟x64的还没看到有帖子……
我把自己目前的进展和遇到的问题一起说说吧:
x64系统过TP大概分两步,首先要过双机调试,然后要过应用层调试。

1、过双机调试,这里也分两步
(1)首先要保证debug模式下启动游戏不蓝屏。

我也是第一次研究TP,对这之前的保护不了解,不过看网上所说这个启动蓝屏似乎是最近几个月新加的。
要过这个需要对内核调试引擎有一定的了解,不过还好我们是站在巨♂人♀的肩膀上,在论坛上找到了篇帖子
比较详细的分析了系统启动时内核调试引擎初始化的几个标志。
TP只是检测了其中一个(待定),KdEnteredDebugger,它通过MDL映射来判断这个标志是不是True,如果是就蓝屏,解决方法我照抄了那篇帖子,直接在Hook一下IoAllocateMdl,
把判断的地址改到一个恒为False的地方这样就可以绕过了

PMDL newIoAllocateMdl(
        __in_opt PVOID  VirtualAddress,
        __in ULONG  Length,
        __in BOOLEAN  SecondaryBuffer,
        __in BOOLEAN  ChargeQuota,
        __inout_opt PIRP  Irp  OPTIONAL)
{

        if (VirtualAddress == KdEnteredDebugger)
        {
                //DbgPrint("[KdEnteredDebugger] address: %p\n", KdEnteredDebugger);
                VirtualAddress = (PUCHAR)KdEnteredDebugger + 0x30;  //据观察,+0x30 的位置恒为0
        }

        return oldIoAllocateMdl(VirtualAddress, Length, SecondaryBuffer, ChargeQuota, Irp);
}

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 3
支持
分享
最新回复 (50)
雪    币: 16405
活跃值: (1620)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不错 学习了……
2014-10-6 18:58
0
雪    币: 53
活跃值: (734)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那么问题来了。。
2014-10-6 19:03
0
雪    币: 1088
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
这个问题蓝翔能解决
2014-10-6 19:38
0
雪    币: 62
活跃值: (971)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
感谢楼主,x64过游戏保护论坛里以前没有,nice~
2014-10-6 20:44
0
雪    币: 5
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
mark
2014-10-6 22:33
0
雪    币: 138
活跃值: (461)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
mark
2014-10-8 08:59
0
雪    币: 1555
活跃值: (3103)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
8
mark 我也想研究过游戏保护
2014-10-8 11:52
0
雪    币: 74
活跃值: (748)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
mark,学习
2014-10-9 10:26
0
雪    币: 68
活跃值: (190)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
X64下 TP还是很温柔的
2014-10-9 11:46
0
雪    币: 49
活跃值: (27)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
R3下应该还需要处理些东西的。。
2014-10-9 18:10
0
雪    币: 28
活跃值: (34)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
嗯……可能是出于PG等原因……64为系统目前而言防护还很少……
2014-10-9 18:14
0
雪    币: 28
活跃值: (34)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
唉?要处理什么?
网上都没看到说要处理什么……最后那个现象我感觉是debugport清零引起的……这两天正想看看
2014-10-9 18:16
0
雪    币: 21
活跃值: (444)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
14
应该只是SOD注入的一个线程吧。。。
00240002    6A 00           push    0x0
00240004    6A FE           push    -0x2
00240006    FF15 0E002400   call    dword ptr [0x24000E]             ; ntdll.RtlExitUserThread
2014-10-9 18:36
0
雪    币: 70
活跃值: (37)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
还有DebugPort清零没处理
2014-10-10 16:05
0
雪    币: 28
活跃值: (34)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
第一张图调试的不是DNF,而且其他程序,所以OD正常
第二张图是DNF,OD显示不正常,也找不到模块信息
2014-10-10 16:17
0
雪    币: 28
活跃值: (34)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
这个果然是DebugPort清零造成的现象吗!?
2014-10-10 16:18
0
雪    币: 62
活跃值: (971)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
18
x64下DebugPort清零能怎么办?
2014-10-11 10:57
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
那么问题来了...
2014-10-11 22:37
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
那么问题来了..
2014-10-12 11:07
0
雪    币: 484
活跃值: (1152)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
DebugPort清零问题 我有个思路 自己分配一片内存 把D*F.exe的EPROCESS结构复制过来,然后把我们自己分配的D*F.exe的EPROCESS结构放入ActiveProcess等一系列的链表中,原来的负责清零的线程还是在清原来的位置,这样我觉得就能调了。
楼下怎么看? 楼主怎么看?
2014-10-12 23:13
0
雪    币: 615
活跃值: (580)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
22
系统中全部访问 DebugPort  的函数 全部PATCH 行就可以了,32位下面就这个方法,话说,楼主你的代码能share下不?
2014-10-13 08:50
0
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
学习了,也想做这方面的研究
2014-10-13 08:57
0
雪    币: 459
活跃值: (398)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
24
也准备弄游戏保护呢,PP- >HS -> TP->NP
楼主有兴趣的话,留个QQ,一个研究。
2014-10-13 09:04
0
雪    币: 56
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
蓝屏是不蓝屏了,TP的驱动模块也能加载,但只能启动登陆客户端Client.exe,在登陆后启动DNF.exe时TP会再进行一次检测,
这次就会造成虚拟机卡死,估计还是和调试模式的检测有关。

呵呵 其实这里并没有卡死 你可以在“卡死”的时候看一下windbg 应该是捕获到了80000004异常 也就是单步异常。 你可以在windbg中尝试多次连续输入 gn (也就是不处理该异常让程序继续)  你会发现虚拟机还在继续运行 屏幕里一直在变化 windbg也会一直收到信息。即游戏在一直尝试触发单步。
2014-10-13 18:34
0
游客
登录 | 注册 方可回帖
返回
//