一般游戏的反外挂保护方案

2023-11-15

所谓知己知彼方能百战不殆,要想减少或避免外挂对游戏的侵害,必须从根本上知晓外挂的原理,及其常用的技术手段,从而在技术手段上对其进行封堵。

一、外挂的分类

外挂一般的分为2类,脱机式 和 内挂式。

脱机式外挂的定义:完全脱离官方发布的客户端程序,可以与游戏服务器自由的进行通讯的外挂程序,这类外挂的实现是2类外挂里最困难的,主要难点在于外挂制作者需要对游戏的通讯协议进行充分的分析,包括解决封包的加密解密问题,使得封包合法化,这样游戏服务器才能接受并处理。

内挂式外挂的定义:内挂需要以官方发布的客户端程序为载体,依靠客户端程序来完成与游戏服务器的通讯,主要通过反汇编手段分析并修改客户端代码后实现功能,一般通过直接调用游戏客户端的发包函数进行发包,或者调用游戏客户端的封包加密解密函数自行处理发包收包。


二、制作外挂常用的技术手段

   制作外挂一般使用的分析工具:
动态分析 OllyDbg(OllyICE)
静态分析 IDA Pro

   制作外挂一般使用的开发工具:
VisualStdio系列(VC++,VB)
Borland系列(Delphi,BCB,BC++)
中国人自己的开发工具(易语言)(编者注:此开发工具优势在于控件种类上,有专门的用于外挂制作的控件)

   制作外挂的技术要点:
鼠标键盘模拟技术:这类技术在RING3层可通过调用WIN32 API实现,在RING0层可通过驱动模拟鼠标键盘输入来实现。按键精灵就采用在RING0层通过驱动来模拟鼠标键盘,比较底层。

Hook技术:包括API HOOK 、普通的对游戏代码进行HOOK等。这类技术有个特点,对目标进程的代码会进行修改。

脚本技术:扩充外挂功能的技术之一,能让外挂使用者编写脚本来扩充外挂功能。

三、反外挂中常用的技术手段

反外挂一般使用的分析工具:
动态分析 OllyDbg(OllyICE)
静态分析 IDA Pro

制作反外挂一般使用的开发工具:
依据游戏客户端采用的开发工具来决定。

制作反外挂的技术要点:
代码校验:包括磁盘代码及内存代码校验,防止代码被非法更改。

虚拟机保护:虚拟机(VM )其实就是Virtual Machine的缩写,这里说的VM并不是像VMWare那样的虚拟机,而是将一系列的指令解释成 bytecode(字节码)放在一个解释引擎中执行,能有效的干扰非法调试者对保护的代码进行分析。是反外挂技术中的重中之重。

驱动保护:采用底层钩子技术,一般采用SSDT HOOK来对游戏进程进行保护。但这种技术有一个致命的缺陷,就是兼容性问题。

反调试:对调试过程产生干扰,阻止非法调试者进行正常的调试。反调试代码加多后会导致兼容性稳定性出现问题。

四、一般保护的思路及步骤

   防止脱机式外挂:
合理的设计封包通讯协议及对封包加密解密算法进行虚拟机保护能有效的防止脱机外挂,反脱机外挂的难度比较低。而且技术要求也不高。

   防止内挂式外挂:
反该类外挂主要从代码校验上着手,并配合虚拟机保护,必要时候加上简单的驱动。简单的可以采用如下步骤处理:
(1)        将封包加密解密独立成一个动态连接库(DLL),供游戏主程序调用进行封包加解密。
(2)        更换封包加密解密方式,防止破解者采用替换旧客户端的方式进入游戏。
(3)        反外挂功能在独立出来的动态连接库里实现,在独立出来的动态连接库中加入对主程序代码段校验。建立一个新的反外挂线程来校验代码段,加入敌意进程或模块的特征检测,对关键的API进行检测。检测到非法可以对服务器进行报告,并在客户端主动切断与游戏服务器的连接。
(4)        在加密解密函数里加入对反外挂线程的检测,检测反外挂线程是否正常运行,如果检测到非法情况,同样对服务器进行报告并主动切断与游戏服务器的连接。
(5)        对独立出来的DLL进行虚拟机保护(封包加解密及反外挂线程代码)。
(6)        加入一些反调试技术。
(7)        根据实际情况采用驱动技术,对游戏进行保护。

五、对反外挂工作的建议
反外挂工作具有长期性,复杂性等特性,故建立专门进行此类工作的软件安全小组是必须的,及时的收集外挂后分析外挂的所使用的技术和破解反外挂系统的方式,写出相应的检测及防护代码,提交后进行游戏更新。通过不断的完善反外挂系统,我有理由坚信,外挂会在这样的保护措施下销声匿迹。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一般游戏的反外挂保护方案 的相关文章

  • 【UGUI】2D头顶血条制作

    前言 近期因为需要制作玩家和敌人头顶的2D血条 查找了很多博客 发现很多都拘束于Canvas的渲染模式必须要设定为ScreenSpace Overlay 还有应该是版本原因 我的是unity2019 1 11f1 用RecttTransfo
  • Python实现迷宫游戏

    项目 迷宫游戏 摘要 1 引言 1 1研究的背景及意义 1 2研究的内容 2 系统结构 2 1系统的结构 2 2基本思路 3 实现代码 3 1Maze类 3 2Player类 3 3Controller类 3 4主函数 4 实验 5 总结和
  • leetcode-跳跃游戏系列

    1 跳跃游戏 leetcode 55 跳跃游戏 1 问题描述 给定一个非负整数数组 n u m s nums nums 你最初位于数组的 第一个下标 数组中的每个元素代表你在该位置可以跳跃的最大长度 判断你是否能够到达最后一个下标 示例 1
  • Vmware虚拟机和主机之间复制、粘贴内容、拖拽文件的详细方法

    Vmware正确安装完linux虚拟机之后 这里以Ubuntu为例 其他linux或windows系统也是类似的 如果你使用的默认配置 正常情况下就可以复制 粘贴和拖拽内容的 双方向都是支持的 如果不能复制和拖拽一般是vmware tool
  • Unity之获取游戏物体对象或组件的几个方法

    文章目录 前言 通过物体名称获取对象 GameObject Find Transform Find 通过物体标签获取对象 GameObject FindWithTag GameObject FindGameObjectWithTag Gam
  • CocosCreator列表scrollview滑动速度的修改,鼠标滚动速度修改

    由于cocos creator 在pc端 使用scrollview 鼠标滚动速度太慢 原文地址 CocosCreator列表滑动速度的修改 简书CocosCreator列表滑动速度的修改 简书引擎版本 2 2 2 之后升级的2 4 0直接可
  • cocos creator学习笔记 十分详细

    游戏系统 分辨率及适配 当屏幕分辨率与设计分辨率不同时会出现适配问题 widget 对节点实现自动定位 运行原理 生命期回调 onLoad 回调会在节点首次激活时触发 比如所在的场景被载入 或者所在节点被激活的情况下 通常我们会在 onLo
  • 「Bomkus 博士的试炼」排行榜规则更新

    亲爱的玩家们 为了回应我们从社区收到的宝贵反馈 我们希望与大家分享我们为防止在 Bomkus 博士的试炼 排行榜中作弊而采取的措施的最新进展 并就这一主题提供更多说明 除了在活动开始前采取的反作弊措施外 我们还根据观察到的和报告的行为在整个
  • 秋招内推码汇总:2024届 游戏公司

    给24届秋招的同学整理了一批秋招内推码 有需要的同学请自取 PS 内推码来自 内推鸭小程序 完美世界 内推码 NTAHVOH 巨人网络 内推码 NTAX3AU 诗悦网络 内推码 NTANdQx 网龙 内推码 EVBMJ3 西山居 内推码 N
  • C++ 游戏服务器方向需要多少功底?

    这篇文章是回答一位知友的提问 现在大二了马上升大三 就读于一个很垫底的211 专业是计算机相关的 但是对本专业内容不感兴趣 希望能从事c 后端的工作 对游戏比较有兴趣 但又不知道需要哪方面的知识 希望各位能给出一个客观的评价或者批评 帮忙指
  • python趣味编程-使用 Python 的 Tron 游戏(多人游戏)

    使用 Python 的 Tron 游戏 多人游戏 和免费源代码 带有源代码的Tron Game 多人游戏 是一款多人游戏 您的目标是创建更长的线 你只需要小心移动 tron 车辆即可 该项目的目的是为您的亲戚和朋友提供一些娱乐因素 关于该项
  • Metasequoia4 for Mac/win:带您进入三维模型游戏建模的新世界!

    在当今游戏行业中 三维模型的重要性无可置疑 而在这个充满创造力和无限可能的领域中 Metasequoia4 简称M4 无疑是您的最佳选择 作为一款专业的三维模型游戏建模软件 M4凭借其强大的功能和简便易用的界面 成为了无数游戏开发者和设计师
  • 揭开神秘面纱,探索犹格索托斯的庭院:一款令人陶醉的模拟经营+AVG游戏

    你是否曾梦想过踏入一个充满神秘与奇幻的世界 体验一番独特的冒险 现在 这个梦想将成为现实 我们荣幸地向你介绍一款全新的模拟经营 AVG游戏 犹格索托斯的庭院 犹格索托斯的庭院是一款极具创意的游戏 它将带你进入一个神秘而充满魅力的世界 在这里
  • 如何有效获取APP新增用户

    在提升APP用户获取效果方面 有几个关键策略可以考虑 市场定位与目标用户明确 在推广过程中 确保清晰地了解你的目标用户是谁 以便有针对性地开展推广活动 对用户的需求和偏好有深入了解 可以更好地制定吸引用户的策略 引人入胜的营销策略 设计有吸
  • 游戏被攻击了要怎么办

    有客户反馈刚上线新款游戏 没两天就被攻击了 导致用户无法登录 来咨询到我们这边能不能帮他解决 今天就来分享下 怎么预防游戏攻击和已经被攻击的游戏服务器该怎么处理 服务器不管是个人还是企业 被攻击的都有 在所难免 特别是新上线时候要承受住外来
  • Counter-strike 2游戏网站网页制作设计 基于html+css 使用HTML+CSS+JavaScript完成以下任务: 1.使用WebStorm建立和管理个人网站; 2.熟练使用CSS结

    Counter strike 2游戏网站网页制作设计 基于html css Counter strike 2游戏网站网页制作设计 基于html css网页项目的设计与实现 https www bilibili com video BV1Kw
  • U3D游戏开发中摇杆的制作(UGUI版)

    在PC端模拟摇杆 实现玩家通过控制摇杆让玩家移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine using Unity
  • 游戏开发常见操作梳理之角色选择一

    进入游戏后 我们经常会进入角色选择的界面 通常是左右两个按钮可以更改角色供玩家选择 对于这种界面我们通常使用数据持久化将角色信息存储起来 接下来的笔记中 我将使用自带的数据持久化系统对其进行操作 实现角色的选择页面 后续会更新xml系列的文
  • 游戏开发常用实践操作之按动任意键触发

    接下来一些笔记会对于一些大大小小的实践操作进行记录 希望对你有所帮助 在游戏中 我们经常会遇到一些按动任意键触发的操作 接下来展示核心代码 以下是对于Unity中的操作 使用的UI是NGUI 对于核心操作没有影响 你可以自己置换 void
  • 案例研究:YGG 如何通过 GAP 帮助 Pixels 扩大玩家群体

    在 Sky Mavis 联合创始人 Jeffrey Jihoz Zirlin 在 YGG Web3 游戏峰会 W3GS 上发表主题演讲时 他向在场的人们透露 MMO 农场游戏 Pixels 的日活跃用户数已经超过了 130 000 人 这使

随机推荐

  • 华为配置端口流量统计

    配置端口流量统计 方便我们检查端口流量使用情况 排除问题 进行优化管理 以下是端口流量 统计的配置方法 步骤如下 a 先定义acl 匹配ping的源 目的IP地址 x和y是您这边测试的地址 ACL的编号自己随便定义 必须是3000以上 具体
  • Selenium图片下载到本地的实例

    目录 一 实例 指定网站 下载到本地的图片 今天与大家分享一个小案例 简单来说就是通过Selenium爬取京东 html页面的商品信息 图片 一 实例 指定网站 下载到本地的图片 效果展示 下载到本地图片 最后的通过Selenium下载到本
  • docker--扩展学习-理论--01

    docker 扩展学习 理论 01 一 Docker的应用场景 Web 应用的自动化打包和发布 自动化测试和持续集成 发布 在服务型环境中部署和调整数据库或其他的后台应用 从头编译或者扩展现有的 OpenShift 或 Cloud Foun
  • 微信开发

    近期在做模板消息推送用户的时候 遇到了报错码40001 但这是腾讯的万能报错码 感觉什么都是这个码顶锅 其实access token并不一定是真的过期导致的 先放一个官方调试工具在这 微信公众平台接口调试工具 1 有可能access tok
  • Python第三方库——rdflib

    实验要求 使用Python的第三方库rdflib 执行核心代码 如操作RDF OWL 执行SPARQL语句 参考资料 rdflib及其使用方法 rdflib 5 0 0 实验过程 在PyCharm上安装第三方库 点击PyCharm左下方的T
  • 如何设计日志系统_如何快速搭建日志系统

    易哥 高级软件架构师 网络工程师 数据库工程师 注册电气工程师 我们开发的业务系统通常会提供给很多人使用 那在使用的过程中 日志系统变得非常重要 日志系统记录的用户行为有以下的作用 从系统用户角度看 它展示了用户自身的操作历史和具体对象的变
  • C++ 虚函数 (virtual function) 介绍

    文章目录 1 什么是虚函数 2 虚函数与非虚函数的区别 3 派生类中的虚函数 4 构造 析构函数可以是虚函数吗 5 纯虚函数 5 1 纯虚函数的定义 5 1 纯虚函数的特定 1 什么是虚函数 C 对象有三大特性 继承 封装 多态 虚函数就是
  • 深入了解Bear Necessities Hackathon黑客松的优胜者们

    生态系统中的资深建设者皆知道Moonbeam是大型黑客松狂热爱好者 不论是线上虚拟的还是现场的 然而 很少有黑客松能达到Moonbeam和AWS举办的Bear Necessities黑客松这样的规模和吸引力 本次黑客松共有755人参与 共提
  • 下载MedShapeNet

    iTomxy data medshapenet 在 1 可下载 MedShapeNet 数据集 在其 Download 页 可选直接 GUI 下 或者先下一个索引文件 txt 的 每行一条文件的下载链接 然后用 wget 逐条下 这里放下
  • IDEA、DataGrip、WebStorm....激活时间2100,激活码激活

    DataGrip 1 下载jar包 JetbrainsCrack 3 1 release enc jar 2 到软件安装的 bin 目录 把这个jar包粘贴进去 image png 3 编辑文件中参数 datagrip exe vmopti
  • 如何用函数指针调用函数

    先举一个用函数指针调用函数的例子 int Func int x 声明一个函数 int p int x 定义一个函数指针 p Func 将Func函数的首地址赋给指针变量p int Func int x 这一句是声明一个函数 是我们要被函数指
  • java通过idea进行远程调试

    1 基于SpringBoot使用IDEA工具 在pom xml中配置 里配置jvmArguments参数 Xdebug Xrunjdwp transport dt socket address 8008 server y suspend n
  • wsl arch linux图形,WSL Arch Linux简单开箱

    arch是一个非常好的Linux发行版 使用起来可以说简单的不要不要的 新手安装时可能有点小小小的问题 现在微软商店上架了WSL arch 昨天简单刚装 第一步 打开商店搜索并下载安装 第二步 打开arch 应该默认root用户启动 我是这
  • AI编程时代,开发者路在何方?

    AI 正颠覆人们的想象 重塑各行各业 AI 技术改变编程范式 有效提升开发者效率 可能人人有机会成为 10倍程序员 在此发展趋势下 开发者不禁担心未来会不会被AI取代 随着 AI 编程时代来临 开发者需要掌握哪些能力来更好地成长 6月28日
  • MAVEN 的下载与配置(详细图解)

    一 maven的下载 二 解压压缩包与变量设置 1 创建本地仓库 创建文件夹如箭头所指 2 配置maven repo为本地仓库 点击conf文件夹 点击setting xml 在文档如图位置补充本地仓库的地址即maven repo文件夹的地
  • 如何快速掌握代币经济学

    如何研究加密世界里的Token 先看一组数据 截至2022年 市面上大约有6000种加密货币 或者更多 这对投资者来说当然是一个很大的机会 然而 在2021年 投资者在Crypto项目遇到欺诈 损失的金额120亿美元 因此 到底如何去表及里
  • Vue工程利用HBuild X打包APP打开一片空白的解决方式

    Vue工程利用HBuild X打包成APP时有时会出现一片空白的情况 这是由于Vue工程打包出来的静态文件路径出现问题造成的 解决方式 在工程下创建vue config js文件 在文件中写入 module exports publicPa
  • CUB200-2011鸟类细粒度数据集训练集和测试集划分python代码

    CUB200 2011数据集介绍 该数据集由加州理工学院再2010年提出的细粒度数据集 也是目前细粒度分类识别研究的基准图像数据集 该数据集共有11788张鸟类图像 包含200类鸟类子类 其中训练数据集有5994张图像 测试集有5794张图
  • Steam账号查询VAC封禁信息

    可以通过SteamID 账号名称来查询 VAC封禁信息 相关网址 1 SteamCN信誉平台 2
  • 一般游戏的反外挂保护方案

    所谓知己知彼方能百战不殆 要想减少或避免外挂对游戏的侵害 必须从根本上知晓外挂的原理 及其常用的技术手段 从而在技术手段上对其进行封堵 一 外挂的分类 外挂一般的分为2类 脱机式 和 内挂式 脱机式外挂的定义 完全脱离官方发布的客户端程序