C++反作弊对抗实战 (序言篇)

261 篇文章 6 订阅

前言

  本人虽从事多年的C/C++开发,写过pc端也搞单片机(目前主业),所谓技术水平这一块,只能勉强算是大家眼中的“混子” —— 就是什么都了解一点,但什么也都不敢自称“精通”了,实属自惭形秽。所以这个专栏的内容严格意义上来说,并不算教程或课程,只是探讨这方面的技术,因为我自己功力尚为浅薄,更不敢误人子弟......

  如果碰到不开心的事儿了,年轻的时候会谁也不服谁的硬刚,中年时就是互相的冷战,等到老年之后就在txt里吐槽了,写了改,改了又删的去折腾一个txt备忘录,亦或者像我现在这样去写写代码博客去解解闷了,因为它需要的仅仅是一个情绪释放的过程,并不是那段回忆,写着写着前面的事情也许就忘得一干二净了......

  转眼间,很多年就这么悄然而去,只可惜的是,最终我们谁也始终抵挡不了时代的浪涛、岁月的洪流,带走了我的青春和年华,剩下的只是一个被岁月刻下深深印痕的伤痕累累的躯壳(满脸沧桑轻微发福)......

  写这个专栏的初衷,更多的只是为了怀念与探讨一下这个维护近十年的CS反作弊项目。在中间踩过许多的坑,也绕了很多弯路。当然最终的结果,只希望与大家探讨交流,也许能帮助到你们,亦或者只当是交个朋友了。在这里,非常感谢你们的支持,这将会是我持续更新的动力!

  刚入门学习C++的时候,一直以为能娶一个“C”就是终点;时至今日,才发现码农的尽头,也许是“脱发”!也难怪小米的雷军曾经说过:每个男人都头顶着一栋“别墅”......最后,我索性只吃点药物,便不再纠结了......

  古语云,所谓知己知彼,百战不殆便是这个意思。我们如果要做反作弊系统的前提,是首先得对这个游戏和作弊器有足够深度的了解。你首先得考虑的是客户端版本的兼容性、在不同系统环境下的稳定性,还得考虑如何避免太多误报,白名单机制,更多的软件框架以及流程等。

  两者是站在不同的角度去思考:如果这是你们自己独立研发的游戏,那自己会更熟悉其中的代码流程和细节,这对写反作弊是有非常大的帮助,而不是像CS/CSGO这种第三方游戏,中间没有任何参考资料,最后纯粹的变成了两个“作弊器”之间的对抗,正所谓本是同根生,相煎何太急!

  换句话通俗的讲,至于作弊器,我们可以大大咧咧毫无忌惮的编写,但反作弊不可以,ring3下的反作弊更不可以!再举个例子:在ring3下面开发作弊器与反作弊,这两者之间的对抗,就好比老师在课堂上面讲课,而底下有一群七八岁的“小学生”在课桌底下互掐一样,虽然大家都觉得很“疼”,但彼此都很清楚的明白,当真正碰到那群初高中生或大学生的大神们,我这种“小学生”被攻破和吊打的话,只剩时间问题了......

  在年轻的时候,觉得游戏一定要玩得爽才行,各种暴走杀戮这才是爽的定义!也许当你像我一样到中年之后,便早已忘记了游戏最初的目的,是为了杀戮机器般的快感,还是去争夺段位高低,还是争夺游戏的特权,还是华丽的道具或皮肤;也许最终都不是了,游戏从一开始,就变成了只是一个收获友谊和快乐的地方了。因为当你到了中年,也许不会再去玩这些游戏了,也许是失去了兴趣,也许是没时间了等等诸多原因......

  在早些年,我便开始帮助国内私F的朋友定制过CS1.6反作弊系统,这也导致了后期不断完善这套系统,因为早期这个游戏是比较火爆的,这位朋友在这款游戏的圈子里也算小有名气,而且那些玩家也真属于那种“不差钱”的主。由于很多玩家实在太菜了,所以拿着顶级VIP特权道具还要开G才玩得爽,反正封号就封号了,几百上千的号没了再买,无所谓了......

  树大招风是必然结果,导致我跟一个盯上我们的W挂小团队“杠”上了!我俩在各种意想不到的奇yin技巧中,相爱相杀了近一年,而ta也许因我一次次修复,最终ta也不再愿意再花太多的精力深究而最终放弃了“抵抗”......

  回眸望去,而在十多年后的今天,市场上充斥着各种手游端游,所以这款游戏也已经彻底退出了大家的视线了,所以这里的一些心得与技巧,便拿出来与大家探讨交流。

  当然,关于我俩之间的种种“恩怨”,将在后需的文章中会更详细的讲解其细节。 我们在这个专栏中,仅讨论在ring3层的作弊与反作弊对抗知识,并不涉及驱动层相关的反作弊技术。当然国内外知名的TenProtect、Hackshield等反作弊系统都是比较强的,他们直接过滤掉了绝大多数“小白”。由于用户模式下的ring3下面很多操作实在是“相形见绌”,所以在ring3层的反作弊系统,通常都是针对一个游戏深度定制的方案,也就没有必要做成像TP、HS那样通用型的了。

  本专栏将以Valve社区经典游戏CS1.6或CSGO为示例,由浅入深的讲解各种ring3反作弊对抗技巧,让你对片好奇的领域更浅显的了解其中原理与方法。

  特别说明的是,你在订阅订阅或观看此专栏之前,强烈推荐你需要有一定的C/C++基础,至少能看懂C++语法、结构体、类等基础概念,以及了解一定win32 api开发基础,我会在每一篇幅里尽量会以初学者的角度去剖析和讲解其中的原理。如果仍有不明白的地方,可以加入我们的企鹅群号 42364669 去探讨即可......

  最后,需要特别鸣谢:  k1nader、Nagist、K.K.Lv、201724、Baby、Natural Virus(排名不分先后)等等大佬无私的支持与帮助,如果没有你们,也不会坚持到今天!

  由于时间仓促,笔者水平有限,难免有遗漏或有误之处敬请指正!

注意:CSDN官方限制不允许博主留下任何联系方式,而且后台只能私信3条,请在订阅后直接私信邮箱或在评论区提供邮箱,谨防失联!

如果你是在校学生或经济不便等原因,直接私信提供邮箱可以无偿索取源码,无须付费订阅!

写作不易,转载请注明出处!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

汪宁宇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值