游戏反私服方案研究

admin 2026-04-16 04:33:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了一种基于动态代码下发的游戏反私服方案。通过宏将核心代码抽离为shellcode存于服务器,下载时利用反外挂模块生成的随机clientkey与服务器serverkey组合加密传输。反外挂解密执行后立即清除内存密钥并限制单次通讯防重放。该方案大幅提升了私服获取核心代码的门槛,建议结合代码混淆与动态内存打散技术强化防护,实现难点在于抽离工具开发与内存执行安全。 综合评分: 82 文章分类: 逆向分析,安全开发,二进制安全,安全建设


cover_image

游戏反私服方案研究

哆啦安全

2021年1月4日 23:49

在小说阅读器读本章

去阅读

编者荐语:

10多年游戏行业逆向大佬的经验

以下文章来源于游戏安全攻防 ,作者游戏安全攻防

游戏安全攻防 .

以安全开发、逆向破解、黑客技术、病毒技术、灰黑产攻防为基础,兼论程序研发相关的技术点滴分享。

动态代码下发机制

  1. 提供两组宏, 一组代码抽离宏,一组代码抽离并且执行一次后删除宏    TQP_START / TQP_END   TQP_CLEAR_START / TQP_CLEAR_END

  2. 客户端在需要抽离代码的地方头尾加入宏

  3. 代码抽离工具根据识别到的宏,将所有需要抽离的代码抽离出来保存到文件shellcode.dat中,这个文件最后存储到服务器上,为防止被拿走可以做个简单的加密

  4. 客户端请求下载shellcode文件的时候,客户端随机生成一个clientkey (这个key是反外挂模块生成和保存的)发送给服务端, 服务端收到指令后随机生成一个serverkey, 然后用这两个key组成一个新key加密压缩shellcode.dat

  5. 服务器发送serverkey给客户端,然后再发送加密后的shellcode.dat文件给客户端

  6. 客户端收到加密后的shellcode文件,由反外挂模块根据服务器给的serverkey以及自己存储的clientkey, 解密该shellcode文件,调整代码让客户端正确运行起来

  7. 客户端解密完成后,clientkey立即清除掉

  8. 这整个通讯过程发送的数据包由反外挂模块加密生成,收到的数据包由反外挂模块解密处理,这样包里面的serverkey和加密后的shellcode.dat不好被私服作者发现。

  9. 这个通讯过程只能发生一次,反外挂模块记录判断是否通讯过,如果有的话,不再发生二次通讯,否则直接崩溃客户端

作用

  1. 私服没有加密前的shellcode.dat文件,该文件只存在于官方服务器。

  2. 即使私服作者拦截到加密后的shellcode文件,但是私服没有解密算法没法解密该文件。。

  3. 即使私服作者用反外挂模块来解密该文件 <<拦截到的加密文件>>,但是由于每次key是由服务器随机生成的,没有正确的key反外挂模块解密不了,客户端无法正常运行

  4. 即使私服作者拿到一组serverkey和加密后的shellcode文件,然后直接调用反外挂模块来解密,但是由于clientkey在解密过一次后就清除了,所以无法解密 (而且是堆栈中的临时数据,游戏一退出就不存在了)

  5. 私服作者多次模拟这个通讯过程的话,则反外挂模块直接崩溃客户端

难度:

  1. 代码抽离工具的制作

  2. 反外挂模块解密shellcode.dat并保证客户端正确运行

  3. 如何保证被抽离的代码块能够打散的分配的动态内存中,从而让私服作者不好还原到对应的客户端地址

  4. 能做到抽离的客户端文件只留出一条 call dword ptr [xxx]大小的空间,防止私服作者再次把代码复制原地方(没空间给他复制代码)

  5. 最好能够实现代码简单的混淆,这样,私服作者不好整到原先的代码,还原代码比较费力,简单的乱序变形代码都是存储于分配内存中,想整理出原始代码难度较大

  6. 乱序变形操作最好在代码抽离工具生成shellcode.dat就已经完成,客户端下载到的就是乱序变形后的代码


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:哆啦安全 《游戏反私服方案研究》

游戏反私服方案研究 网络安全文章

游戏反私服方案研究

文章总结: 本文介绍了一种基于动态代码下发的游戏反私服方案。通过宏将核心代码抽离为shellcode存于服务器,下载时利用反外挂模块生成的随机clientkey
评论:0   参与:  0