这段时间迷上了CSGO,想着研究一下关于它的反作弊,于是便有了今天这篇帖子
那么众所周知,国内的CSGO平台三巨头分别是某美,某E,某马桶,后两个不说了,一个直接开转,一个号太贵,所以我选择了某美平台
起初我以为会十分顺利,结果彻底各种被各种爆栈和回溯恶心到了,再无数次拉闸与被AC调戏过后,选择写篇帖子来找找存在感
现在进IDA看看,可以看到只有少部分代码是被vm的,但是恕我这个菜鸡搞不定vm,所以只能挑可以一键F5大法的地方,很多内容可以到导入表直接交叉引用来查看,这里只挑关键的地方(由于刚开始逆,部分地方没有仔细看,只是大概内容,可能有些地方逆错了,还请大佬们指出)
反作弊驱动名:MessageTransfer.sys,开机自启动,对自身和系统文件都有校验,不可以修改类似dxgkrnl.sys的系统驱动,大概可以确定是使用FltSendMessage进行通讯
1.全线程堆栈回溯-RtlWalkFrameChain
DPC定时器循环下发APC爆栈,老生常谈了,这里不作过多解释
2.对于进程的APC相关操作
这里还没有时间仔细去看插入进程APC的全部代码,但是大概看了上下文代码反作弊不是无脑插APC,应该动了手脚,这使得如果你试图去修改Thread+0x74的QueQue标志位绕过APC检查,那么你的进程会崩溃(实际测试中所发生,问题应该在此处,尚未确定进程崩溃与反作弊有关,后续会更新),在往里面走就是一堆循环,目前不清楚是做什么的
3.通讯 (FltSendMessage)
4.最后来个彩蛋(虽然可能你们都知道)
以前的我:反作弊应该不会用VT吧?
现在的我:麻麻我要回家
关于这个驱动的更多详细信息,大家请自行探索,不要干不好的事哦~
(第一次体会vm少到代码逆不完的感觉,点名批评某蓝色的熊),不过感觉vm仍然是绕不过去的一道坎,如该驱动的关键部分(比如上报)仍然是被vm所保护起来了的
更多【关于某美公司的CSGO保护驱动逆向分析(一):初见庐山真面目】相关视频教程:www.yxfzedu.com