P8551945 发表于 2018-3-4 09:53:43

散谈驱动过游戏保护TP那点事+源码

声明:本文只为研究技术,请所有童鞋切勿使用本文之方法做下那天理难容罪恶不舍之坏事。

   既是研究游戏保护,那么总要有一个研究对象。本文就以TMD_TP这款游戏保护为例进行分析讲解。请勿对号入座,如有雷同之处。纯属反汇编引擎之错误,不关我的事!

   关键字:DNF 驱动保护

tmd_TP也就是国内比较流行的游戏D_N*F的游戏保护。
它在ring0层一共HOOK了几个地方和一些其他的工作。来达到保护的目的

下面是简报:

NtOpenThread //防止调试器在它体内创建线程
NtOpenProcess //防止OD等在进程列表看到它
KiAttachProcess //防止其他软件附加它
NtReadVirtualMemory //防止别人读取它的内存
NtWriteVirtualMemory //防止别人在它的内存里面乱写乱画
KDCOM.dll:KdReceivePacket //这两个是COM串口的接受和发送数据
KDCOM.dll:KdSendPacket //主要用来方式别人双机调试

使用了KdDisableDebugger来禁用双机调试
.text:010025F0               jz      short loc_1002622
.text:010025F2               call    sub_10022A4
.text:010025F7               call    ds:KdDisableDebugger
.text:010025FD               push    offset byte_10022EC
.text:01002602               push    esi
.text:01002603               push    offset byte_10022DC
.text:01002608               push    edi
.text:01002609               push    dword_100CF24

并对debugport进行了疯狂的清零操作
甚至还包括EPROCESS+70\+74\+78等几处位置


处理的手段通常都是向64端口写入FE导致计算机被重启
.text:01001665               mov   al, 0FEh
.text:01001667               out   64h, al         ; AT Keyboard controller 8042.
.text:01001667                                       ; Resend the last transmission
.text:01001669               popa
.text:0100166A               retn


下面简单看下他关键的几个HOOK:
KiAttachProcess   

NtReadVirtualMemory

NtWriteVirtualMemory

NtOpenThread

NtOpenProcess

其中,前3个直接恢复即可。
第4个有监视,直接恢复即刻重启
第5个和ring3有通信,直接恢复1分钟内SX非法模块

**** Hidden Message *****

zhyang12012 发表于 2018-3-6 21:27:22

11111111111

a891822088 发表于 2018-3-14 06:34:06

散谈驱动过游戏保护TP

kriestian 发表于 2018-5-10 21:53:52

看下。。。学习了。。谢谢!

littlewisp 发表于 2018-5-31 09:56:03


看下,学习学习,谢谢!:lol

pjzmj2012 发表于 2018-6-19 17:29:30

www.kanliuxing.com

yunli 发表于 2018-7-6 08:07:20

srsdggtdtRTDYTDTDZ服用父爱。

1525566427 发表于 2018-8-10 15:20:28

嗯 看一下 希望有帮助

盟主 发表于 2018-8-10 18:51:28

学习下学习下学习下学习下

hackdir 发表于 2018-8-11 11:48:07

散谈驱动过游戏保护TP那点事+源码
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 散谈驱动过游戏保护TP那点事+源码