【游戏逆向】探索可靠的线程检查方法

文章讲述了在外挂和木马对抗中,线程保护的重要性。外挂和木马通过篡改线程函数、阻止线程创建等方式进行攻击。介绍了一种结合线程上下文切换次数和数据变化检测的方法来发现和防范木马的隐蔽手段,如通过hook系统API改变线程行为。这种方法包括监测线程的delta值和活动更新数据,以及主动触发线程调度来检查线程活动性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、关键的线程检查

在对抗外挂和木马的方案中,不可能将所有的检查操作放在主线程中,因此,在方案中总有一个扫描线程或者环境检查线程必须保持工作,而它们也就成了外挂和木马的重要攻击目标,外挂和木马只要搞定了它们,就能很方便地在客户端肆虐。

在客户端反木马方案SafeLogin和TEdit中,就经历过很长一段时间线程保护的对抗,通过了解客户端反外挂系统以及壳和Sanlix中的线程保护,现在在对抗线程保护方面,木马的对抗手段相对外挂跑在了前面,这和木马本身的特性关系很大,如果不搞定扫描线程和环境检查线程,那么它们在特征扫描、键盘钩子和窗口行为等检查过程下将无法遁形。

二、外挂和木马常用的攻击手段

外挂和木马对线程的攻击不外乎这样的几种手段:

1)最简单的,篡改线程函数代码,很容易被通过特征检查扫描到;

2)简单阻止线程创建,通过hook线程创建相关函数,也很容易被发现;

3)这种办法相对隐蔽,通过hook ntdll!CsrNewThread函数,替换线程函数地址,这样绕过了壳中通过GetExitCodeThread和ResumeThread的检查方法;

4)更为隐蔽,通过hook kernel32!Sleep, 当线程内调用Sleep的时候,通过篡改参数,让这个Sleep永远进行下去,不过在SafeLogin的根据数据的线程检查方法可以发现它;

5)非常隐蔽,通过hook ntdll!ZwDelayExecution, 并不是让线程永远Sleep下去(Sleep函

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

douluo998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值