分享一个编写传奇封外挂(反外挂)系统的完成过程[原创]
正文
本章节没有代码,一点理论,有这些理论知识、在游戏开发过程中可能给你会得到一些提示。
使用游戏封包检测当前玩家是否使用了外挂的方式是最正统,最常见直接的检测方式。但是本方式需要开发者知道游戏的通信协议的情况才能使用。一般用在自家开发的游戏上面比较常见,能正常加密、解密和解释自家游戏的封包数据的情况下。并不适合开发游戏盾等服务于大众的相关产品。并且封包检测一般只能监测封包挂,比如加速挂和漏洞挂。不能检测完美契合游戏协议的脱机挂。当然游戏封包可以设计一些隐晦一些的暗装,可以检测出完全脱离游戏客户端的脱机挂。
封包挂,一般会采用重复发包,或者发不合理数据包、或者通过加速高频发包方式来达到作弊的目的。比如说正常动作是发送砍一刀,外挂可能重复发包或高频率发包,来达到多倍效果。也可能通过漏洞,发送一些当前场景不能操作的动作等。封禁这些外挂可以在服务器端程序设计时、计算好动作间隔时间,和动作合理化判断、这样外挂是不能实现了。但是比如传奇这种老游戏则没有做好这一点,这就需要开发第三方的程序来额外处理计算封包的合法性了。
游戏开发中还需要注意一个问题就是数据的溢出问题、这是所有程序员都知道,但是又很容易忽略而犯错的问题。比如说数据类型是 int 类型,那么玩家通过丢弃 -1000 金币的动作或交易动作来达到刷金的目的。
当然游戏设计时还应该将所有的资源的产出和销毁做跟踪日志记录,方便后期追溯数据处理。
如果你也有这方面兴趣爱好交流欢迎加扣58085250与我直接沟通交流指正。