数据加密

客户端   

游戏中的关键逻辑数据,如血量,攻击力等,容易被通用的数据修改器类外挂搜索定位并修改。因此,对于客户端逻辑中存在关键逻辑数据的游戏,需要对其进行加密。而针对修改器的模糊搜索,一般的异或加密也是不够的。

     推荐方案:

     影子变量。同一属性,如血量,有hp,hp_shadow1,hp_shadow2.hp采用a加密,hp_shadow1采用b加密,hp_shadow2采用c加密。当读取hp时候,首先验证,hp,hp_shadow1,hp_shadow2解密后的数据三者是否一致,若不一致,则可确定为被外挂修改。此时可利用hp_shadow1,hp_shadow2的值回复变量

 

服务端

游戏在客户端(尤其是pc上的android模拟器)与服务端交互的过程中,可能被网络封包截获工具获取(如wpe等),并进行分析或利用修改封包,或利用重发的方式,实现外挂功能。因此,协议必须有防分析,防修改,防重发

     推荐方案:

     加密协议时,需确保key是可变换的,至少要求key在每次登录时不一样。

     协议需存在crc字段(或其他校验字段),服务端,客户端需在每次接受到协议后,根据校验字段进行校验协议的完整性

     协议需存在序列号字段,客户端或服务端在接受到新协议后需确认序列号字段是否正常(若新接受到的协议序列号不是上一次接受到的协议序列号+1,则可认定为协议被外挂重发)

猜你喜欢

转载自pumbaa-he.iteye.com/blog/2305779