去评论
就爱江湖 Www.92Jh.Cn

【砍线程-上】理论+个人理解

Mourner
2020/05/21 10:39:55


先了解一下线程,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程一个单一顺序控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

在这一系列的运行中,每一个模块都会去相对创建一定数量的线程来执行他们的功能:
游戏启动()
{
       启动线程(&CRC检测)     //创建了一条新的线程去执行我们要开启的某个功能
         .....
}

CRC检测()
{
         ......
         ......
         对指定内存进行循环检测扫描,检测到非法保存本地等待上传/直接上传非法
}

那如果我们不让这个CRC检测的这个子程序运行起来,那就等于检测的相关校验都没执行,那就算有非法操作也无法将非法的内容上传服务器
处理方式:
①枚举进程所有模块和线程,强制结束指定模块的所有线程(例如:TerSafe.dll)
②Hook线程创建API函数来实现线程的不创建
③线程入口直接ret或jmp到sleep(Jmp的方式可以用在你找到一些检测地址直接跳到sleep进行线程休眠
也欢迎大家补充新的方式,以上为理论,下期实战代码看效果,这个方式只是最简单粗暴的,要被检测很简单。获取线程的相关信息就可以。一般用于刚更新或检测强度为低的时候使用。


未完待续,下一期——砍线程实战