吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 60571|回复: 122
收起左侧

[游戏安全] 发布一个过TP win64位系统的心得!

    [复制链接]
liuchunguang 发表于 2015-8-22 12:16
TP会检测调试器让调试器暂停运行,实际上就是暂停了调试器所有的线程而已。
这个保护是今年7月份新出的,所以我这里重点分析下,我刚开始调试的时候就发现OD会莫名其妙地卡死。
打开PCHunter发现OD的进程线程全部被暂停了。
开始我认为是TP调用了SuspendThread(函数:暂停指定线程)来让调试器卡死的。
于是我就打开Windbg附加并在这个函数上下断点,发现没有断下来。
然后我认为是调用了接口函数NtSuspendThread(函数:暂停指定线程<内核接口>)
但是还是没有断下。所以排除了DXF在Ring3调用了暂停线程让OD卡死。
于是我思考了一下,打开虚拟机,简单过了双机调试保护(一段时间后还是会蓝屏),在DXF启动之后,
在Windbg输入!process OD的进程ID 来查看线程的调用堆载,我发现了很有意思的东西。
SuspendCount被置为了1,再看看调用堆载。
原来TP在Ring0中调用了KiSuspendThread来暂停OD的线程啊。怪不得断不下来。
于是我在KiSuspendThread头部下断点,发现当OD打开的时候会断下,
这个是它的函数开头
0: kd> u KiSuspendThread
nt!KiSuspendThread:
fffff800`03e6cc60 48895c2408 mov qword ptr [rsp+8],rbx
fffff800`03e6cc65 4889742410 mov qword ptr [rsp+10h],rsi
fffff800`03e6cc6a 57 push rdi
fffff800`03e6cc6b 4883ec30 sub rsp,30h
fffff800`03e6cc6f 8364245800 and dword ptr [rsp+58h],0
fffff800`03e6cc74 65488b1c2588010000 mov rbx,qword ptr gs:[188h]
fffff800`03e6cc7d 4885db test rbx,rbx
它还保留着用__stdcall的调用约定,在64位下一般都是__fastcall
通过对参数的分析,我发现这个函数的第一个参数也就是rbx,里面存的是线程对象。
我在网上也没有找到相关的信息,于是我自己在头部改成了ret。
之后运行OD就不会卡死了。
继续深究,原来TP创建了一个内核回调,就是CreateProcess的回调,
自己可以打开PCHunter查看。
当发现是OD的进程被创建时,就会调用这个函数让进程暂停。
哦,原来是这样,那我们有什么办法解决它呢?怎么才能让调试器正常运行呢?
方案:1、自己恢复调试器的进程(推荐) 2、删除内核回调(驱动推荐)3、Hook KiSuspendThread 绕过(稍难)

2、函数钩子(Hook)
这个保护不能说是新鲜了的吧,在应用层里很多游戏都这么干。
其实就是把一些重要的调试函数进行钩子,导致程序崩溃或者无法调试。
我们打开PCHunter,来到如图的位置,选择DXF的进程->右键选择扫描。
现在你只需要坐下等大约5分钟吧,好像有一千多个钩子。
我这里来说明下这3个函数的用途。
DbgUiRemoteBreakin:远程中断,附加调试器时调试器会发送信息让进程走这里。
KiUserExceptionDispatcher:UEF异常处理函数,梦老大讲解过的,这个我们不能随便恢复,干脆不用管它
因为DXF自己制造异常自己处理。
LdrInitalizeThunk:映像文件链入口,当DLL载入时会经过这里,如果我们不恢复它将无法注入DLL。
这3个钩子有两个是我们必须恢复的,就是一和三。
第三个比较好处理,PCHunter中已经给出了函数原来的机器码。我们之间用PCHunter恢复也可以自己写个程序恢复
但是第一个就不好了,我们必须用程序自己来恢复


3、异常崩溃
大家可以发现OD附加DXF后运行,游戏会莫名其妙地崩溃,你可能会认为OD被DXF检测到了,其实它是个通用
的反调试的手法。
自己给自己制造异常,自己处理,如果OD抢着处理这个异常,反而会使进程崩溃。
这个就是它异常崩溃的原理。
其实是一个线程在自发异常的,怎么把它揪出来呢?
打开Windbg,附加DXF,运行,可以发现一段时间后,Windbg断下

线程ID:F08 发送了一个内存访问异常(0x80000002)它故意让Windbg断下。
它需要试探是否有调试器,于是我们就找到它了,把f08换成十进制发现是
3848的线程发送异常的,在PCHunter中可以看到,如图所示,它是由ntdll.dll发送的。
唯一的办法就是结束这个线程,右键->结束线程,搞定,OD附加DXF不会崩溃了。
但是你得自己做个程序来找到这条线程然后来结束掉,可以通过搜索线程入口特征码的方式来
找到它。
那么现在,我们调试DXF再也没有问题了。但是CE工具开启久了也会被提示非法,怎么办?
4、检测非法工具
也许大家非常想要知道怎么办。
它检测非法工具的原理是:
使用ReadProcessMemory(函数:读取进程内存)搜索进程特征码,找到属于非法工具的特征码后游戏消失,提示非法重启。
若想解决它,我们有以下方案:
1、删除工具中的特征码
2、在内核中拦截NtReadVirtualMemory或KeStackAttachProcess来绕过搜索
3、找到搜索的线程,结束该线程。

5、关于CRC代码自校验
通过上面的说明,大家应该可以总结一个结论
在应用层中游戏若想保护自己都是采用走线程或Hook方式。
所以大家可以自己找到CRC代码自校验的线程吧?结束掉,OK,可以下软件断点(int 3)了。

感谢各种论坛52论坛的一些帖子我这里不一一介绍了,在这里我真的学到了很多东西。

最后来一发成就图




1.jpg

免费评分

参与人数 21威望 +2 吾爱币 +5 热心值 +20 收起 理由
liphily + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
疯神 + 1 鼓励转贴优秀软件安全工具和文档!
superman1994 + 1 + 1 我很赞同!
黎明_dawn + 1 + 1 热心回复!
XiaoBao20 + 1 谢谢@Thanks!
菜鸟也想飞 + 1 谢谢@Thanks!
qaz003 + 1 很到位~~
beatit + 1 鼓励转贴优秀软件安全工具和文档!
小可爱~ + 1 用心讨论,共获提升!
rootkid + 1 我很赞同!希望能越来越好!
tornado + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
sunbeat + 1 有深度,好文
依旧小青年 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
风动鸣 + 1 热心回复!
wlibra + 1 鼓励转贴优秀软件安全工具和文档!
xuyifang + 1 我很赞同!
Hmily + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
ccav5 + 1 我很赞同!
490694561 + 1 楼主高大上啊!
雅瑟 + 1 鼓励转贴优秀软件安全工具和文档!
首席鉴淫师 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wnnydgl 发表于 2016-11-12 12:53
feng123144 发表于 2016-8-23 22:57
我们打开PCHunter,来到如图的位置,选择DXF的进程->右键选择扫描。。。。此图在哪?抄来的吧,图没跟上

这还用说,文里说的是DXF最后截图是天涯明月刀{:1_912:}而且这文章我在某论坛看到过
kldxxlxc 发表于 2017-2-15 11:09
wnnydgl 发表于 2016-11-12 12:53
这还用说,文里说的是DXF最后截图是天涯明月刀而且这文章我在某论坛看到过

在梦老大论坛上吧,这帖子是小宝原创的,不知道楼主是不是小宝
小可爱~ 发表于 2015-8-22 12:25
丿小杨灬战狼 发表于 2015-8-22 12:25
不明白你到底说的什么
Because-of-love 发表于 2015-8-22 12:40
用od过tp检测啊
Victory.ms 发表于 2015-8-22 12:47
天刀行动,楼主听过吗
wanmei 发表于 2015-8-22 13:02
楼主是修改了什么呢
zhangshaosky 发表于 2015-8-22 13:10
此方法同样适用于LOL吗?
lingli7776 发表于 2015-8-22 13:16
说什么那这是
乀想伱了灬 发表于 2015-8-22 23:04
没明白什么意思,能出个工具怎么过吗?表示我win764 一调试游戏就崩溃..
shenlive 发表于 2015-8-22 23:08
谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-27 09:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表