挂机类手机游戏源码-为什么你的游戏总是充满不愉快,作弊者是怎么做到的?

相信大家对于插件这个东西都很熟悉了。 例如,你刚回到家,你太累了。 您想打开笔记本电脑并玩一些游戏。 观点。举报还是没用,这是别人在你的基础上建立起他们的幸福,我们来谈谈这些反作弊的事情

1. 作弊的由来

作弊的事情可以追溯到2000年。当年,星际争霸的开放全地图、CS的视角、穿墙等,让游戏完全失去了比赛的公平性。 那时,反作弊的概念也呼之欲出。 后来随着PC端网络游戏的兴起,很少有人玩或谈论这类游戏,但游戏外挂却随着时代的步伐不断前进。

2. 插件如何工作?

先说一下外挂的类型,大家都知道,离线挂(包挂)、内存挂(调用游戏内函数、篡改游戏数据)、模拟挂(模拟鼠标键盘代替手动操作)等等在

技术分类:

1.离线插件

在游戏开发过程中,每个游戏的客户端和服务器都会有固定的通信格式。 大多数游戏通信合约位于TCP层挂机类手机游戏源码,自定义的数据结构被插件开发者称为数据包。 下面简单罗列一个简单的格斗包,轻松讲解离线插件的原理。

0000ABCD 0000DCBA 00001234 00001000

例如,玩家1在与玩家2的战斗中向服务器发送了一个16字节的数据包,游戏开发者定义了这个数据包的含义如下:

0000ABCD:玩家 1 的 ID。

0000DCBA:玩家2的ID。

挂机类手机游戏源码-为什么你的游戏总是充满不愉快,作弊者是怎么做到的?

00001234:玩家1使用的技能编号。

00001000:玩家1对玩家2造成的伤害,换算成十进制:4096。

服务器收到这个数据包后,会减少玩家2的血量4096点。 如果减少后玩家的血量大于等于0,则判断玩家2已经死亡。 此时,服务器会向玩家2的客户端返回数据包,玩家2的客户端会播放玩家2已经死亡的动画。

事实上,上述逻辑存在很多漏洞。 例如,服务器应该判断玩家最后一次释放技能00001234是否在冷却时间内。 、攻击力、暴击等,是否超过游戏本身的最大伤害限制。 每个游戏都存在这样的漏洞,但不是那么严重。 一些老游戏在这方面比较弱,所以漏洞较多。

另外,在游戏开发过程中挂机类手机游戏源码,游戏开发商公司的相关文件中对数据通信的格式有明确的规定。 而且这份文件是极其机密的。 如果一些游戏开发商公司的安全性不够好,可能会导致游戏代码和文档的泄露。 一旦这些材料流入金手指开发者手中,这款游戏就很有可能出现线下金手指。

离线作弊的定义是:在不打开游戏客户端的情况下,第三方程序直接与游戏服务器通信,模拟账号登录验证、角色选择、进入游戏、进入场景、开始战斗、对怪物造成伤害等行为。 数据包发送到服务器,服务器没有能力判断这样的数据包是否是客户端发送的。 即使有验证方法,由于源代码已经泄露,插件开发者可以很容易地模拟服务器的各种验证机制。 即使数据包在传输过程中被加密,由于源代码的泄露,插件开发者也可以正确模拟数据包的加密方法。

2.模拟合约发送插件

线下作弊大多依赖游戏开发商的数据泄露,而模拟合约发送作弊与线下作弊非常相似。 原因是有些插件开发者本身可能就是游戏开发者,他们对游戏中的逻辑很了解。 他们可以使用调试+抓包分析的方法来分析游戏中的一些关键点,而无需源代码和通信格式数据。 数据包,并利用一定的模拟分包技术来完成游戏本身丰富的功能。

此类插件大多需要向游戏中注入dll文件,并利用该dll获取socket句柄与服务器进行通信。 在此套接字句柄上,将组织好的合法数据包发送到服务器。 这种插件在一些老游戏中很常见,比如决战OL中挂机插件中的呼叫功能,自动喝药的功能,都是通过模拟分包来完成的。

3.内存插件

没有游戏客户端源码,没有一定的游戏开发经验,还是可以开发外挂的。 而这类插件开发者一般都精通操作系统的各种底层机制,比如模块、线程、内存、内核对象、内核机制等技术。 这些技术帮助他们分析游戏客户端进程中的逻辑和重要数据,然后他们通常会向游戏进程中注入dll来操作游戏进程中的数据并完成一些特殊功能。 当遇到一些变化时,服务器恰好失去了校准,他们的作弊功能就成功执行了。

3. 游戏黑客的基本原理

对于单机游戏:游戏中的大部分参数(如血量、法力、能量或金币)都存储在电脑的堆栈中,一些类似于剧情进度的参数被加密写入本地自定义配置文件;所以单机插件的原理就是改变本地配置文件

对于页游、网络游戏、手游:游戏外挂一般会改变显存数据,或者抢占网络数据包。

1、修改显存数据的原理:服务器保存了大量的重要参数,但由于客户端不可避免地需要进行大量的估计和资源加载,所以本地显存必须有一些临时变量。 通过判断各个变量的变化规律以及对函数的解密来找到对自己有利的参数,比如伤害值,然后找到变量的内存地址,根据偏转分析得到显存的基地址表针,然后提高权限,通过使用Windows API自定义将值写入内存块,完成更改某个值的操作。 一般来说,只要破解了其中一个数值,再利用法则破解其他数值就会更容易一些。

2、拦截网络数据包的基本原理:互联网客户端/服务器模式通信通常采用TCP/IP通信协议,通过IP数据包的传输来实现数据交换。 一般来说,客户端向服务器发送单独的请求,如联通、战斗等命令通过数据包与服务器交换数据。 那么我们把本地发送的消息称为SEND,即发送数据的意思。 服务器收到我们的SEND消息后,会按照既定的流程向客户端反馈相关信息,比如移动坐标、战斗类型等。 客户端从服务器接收到的相关消息称为RECV。 接下来要做的就是分析客户端和服务器之间的数据(也就是数据包),这样就可以提取出有用的数据供我们改变,然后模拟服务器发送给客户端,或者模拟客户端发送给服务器,这样就可以达到改变游戏的目的。

什么是数据包

1.1 数据包的概念本文所说的数据包是指socket合约发送和接收的数据包。 广义上的数据包是指计算机之间相互通信的数据包,其内容可能因通信契约的不同而不同。 1.2 破解原理 目前,破解报文加解密算法的方式主要是通过动态调试技术来实现。 其原理是先通过动态调试跟踪并取出加解密算法的代码段,然后通过分析代码最终得出结论。

再说说内存挂,内存挂主要是为了验证游戏数据,比如伤害、移​​动速度、血量等等,在没有验证的时候几乎是你想跑、逃就快。 现在和谐了,和谐的形式也很简单。 计算角色的速度,然后取角色的一个坐标到另一坐标的距离。 一定的误差,如果差值超过设定的量,那么就可以判断玩家正在使用加速工具。 伤害和血值类似。 任何数据都有一个算法来估计它是否超过预期的最大值。

游戏应用

1、枪压:枪压技术的实现方式有很多种,但对于高精度枪切来说,需要改变显存或者网络数据包,首先获取枪口偏转信息,然后将准星调整到具体观点。

2、透视:读取显存中的数据坐标,在屏幕上勾画出应该对玩家隐藏的信息。 在OBS上直播时,如果您选择只直播游戏,那么这种“信息”只有直播者可见。

3、自动瞄准:通过以上三者结合得到,得到玩家坐标,然后通过键盘联通命令完成瞄准。

总结:如果你能完美忽略枪口跳跃时的随机左右偏移,那么你基本上可以把它看成是读取显存的切枪。 透视的发现要困难得多,但无论安装多少,最终的目的一定是从这个功能中获利。 自动瞄准是最容易发现的。

修改显存/数据包类型:同时击杀多人、瞬移、一拳超人、圈外无伤害等。

挂机类手机游戏源码-为什么你的游戏总是充满不愉快,作弊者是怎么做到的?

总结:通过改变显存和封装就可以实现各种疯狂的功能,而且很容易被屏蔽和鄙视。

反作弊与作弊的较量

1、对服务器上的数据库进行严格加密,每晚手动更新随机密码。 经常校验数据包,校验结果以服务器为准;

2.严格检查游戏客户端,具体手段为:

(1)保护关键的api Hook,并发送与网络相关的recv;

(2)dll注入检查可能是hook loadlibrary,定期检查进程模块(发现非法模块则退出)也很有用;

(3)使用od调试客户端还没有完全有效的方法。 一般就是添加一些花哨的说明并打包。 这些方法对于大量低水平作弊作者来说已经足够了;

(4)很多游戏都会检查PE、OD、按钮向导、简单游戏等,主要是枚举窗口名、进程名,对此类名称的进行屏蔽,但这些低级方法收效甚微。

(5)按键式插件检查。 对于后台脚本来说,GetCursor和GetForegroundWindow主要是用来检测窗口位置和键盘位置是否正确,还有一些是处理WM_ACTIVE消息(神武就是这么做的)。 对于前端脚本来说,键盘偏斜不仅没有更好的办法,而且这种偏斜对于普通玩家来说也是非常不友好的,同时也影响了游戏公司对玩家的留存。

(6)有些人说要检查键盘点击位置的重复性,这大多是自己的猜测,这样做很容易导致密封错误。

外挂技术与游戏安全分析

挂机类手机游戏源码-为什么你的游戏总是充满不愉快,作弊者是怎么做到的?

抵抗逆向分析

除少数通用插件(如鼠标模拟插件、通用加速插件)外,大部分插件在制作前都需要对游戏逻辑和数据进行动态调试和静态分析,以找到最适合的插件。在对游戏进行更改之前关键逻辑和数据的位置。 ,所以反调试和保护游戏逻辑是打击游戏黑客的有力形式。

防止黑客攻击

一旦游戏的关键逻辑和数据被黑客分析出来,黑客就会通过编程修改游戏客户端。 修改游戏进程往往是通过一些系统函数如ReadProcessMemory、WriteProcessMemroy或者向游戏进程注入dll来改变游戏内存。 因此,保护​​游戏显存、扫描恶意模块是进一步避免作弊、被动检测作弊的有效措施。

游戏反作弊领先一步

针对游戏安全问题,Virbox反作弊系统采用静态防护与动态防护相结合的方式,抵制和打击作弊行为,保护端游。 目前仅支持Windows系统。

静电保护(Virbox Protector)

Virbox Protector是深思自主研发的虚拟机外壳,用于保护游戏的代码逻辑。 强大的虚拟机保护以及专为Unity游戏设计的独特Unity3D保护,极大地限制了游戏的逆向分析,有效防止了作弊的形成。

代码逻辑保护

现代反编译工具变得越来越强大。 即使是用C/C++等静态语言编译的程序也能将代码恢复到与源代码几乎一样的程度。 没有代码保护,游戏客户端的代码逻辑暴露,黑客很容易找到攻击的位置,使得编译外挂的成本显得很低。

Virbox Protector可以通过混淆、虚拟机、代码加密等方式保护游戏中的指定功能。 受保护的代码很难手动恢复,黑客分析混淆和虚拟化的指令需要花费数十倍甚至数百倍的时间。 为了保护游戏客户端的关键功能,每次客户端更新时,黑客都需要大量的时间来重新分析受保护的代码。

内存校准

插件的中级功能大多采用“内存补丁”的形式来改变游戏模块。 Virbox Protector具有显存校准功能,可以校准游戏代码,防止被打补丁。 (该功能目前不支持Unity3D游戏)

挂机类手机游戏源码-为什么你的游戏总是充满不愉快,作弊者是怎么做到的?

Unity3D保护

Unity 游戏是用 C# 编写的。 与C/C++开发的游戏相比,Unity游戏更容易被黑客分析。 使用DnSpy、Reflector等工具可以直接反编译Assembly-CSharp.dll中的代码,并且游戏代码中的变量、函数名称清晰可见。

Virbox Protector对Assembly-CSharp.dll中的所有方法进行加密,只有当该方法运行并编译成汇编代码时,秘密才能被揭示。 黑客未能转储原始代码。

动态保护(Virbox反作弊引擎)

Virbox 反作弊引擎是一个驱动程序级进程保护系统。 系统结合主动防御(反调试、内存保护、防注入、Hook检测等)和被动防御(窗口检查、内存特征扫描等),动态保护游戏进程。 Virbox反作弊引擎的主要功能如下:

反调试

编写插件或者盗版补丁,首先要做的就是使用调试器(如OllyDbg、x64dbg、Windbg、Cheating Engine等)来调试软件流程,分析关键代码逻辑和数据。 Virbox反作弊引擎对受保护的进程进行调试和检查,并阻止内核调试器(如WinDbg)调试Virbox反作弊引擎本身,这使得各种调试器无效,极大地限制了逆向分析过程。

内存保护

黑客在分析软件时,除了调试之外,还会使用显存搜索(如使用Cheating Engine)等方法来定位关键数据的显存。 另一方面,大多数插件或盗版补丁会通过另一个过程改变显存。 Virbox 反作弊引擎通过驱动级显存保护,防止其他进程对受保护进程进行读、写、修改,保证受保护进程的安全。

回注

要修改进程的显存,除了跨进程显存访问之外,还可以通过注入Dll或ShellCode来完成。 Virbox反作弊引擎通过显存保护和监控模块加载拦截大部分注入形式,并配合显存特征检测功能拦截非法模块。

特征扫描

反作弊引擎可以测量内存特性、窗口特性、模块特性、驱动程序特性(如HideToolz、PCHunter、StrongOD等)

安全问题必须引起重视。 反作弊本身是一个伴随游戏整个生命周期的问题。 您看到的问题也是其他游戏开发者遇到的问题。 如果你迈出了第一步,解决了反作弊的问题,就能引领其他开发者迈出一大步。

阿华(化名)是一名大学生。 贫困的生活让他失去了找老婆、出去散步的兴趣。 他每天晚上都沉迷于一款名为《绝地求生》的网络游戏。 不仅是比赛,除了《运气好,晚上吃鸡》获得第一名会让他兴奋一阵子之外,其他的对他来说都如浮云。

一连三天,他在游戏休息时间浏览网页,一个“挂机赚钱”的网页出现在他的眼前。 这是一款永远挂机的免费使用赚钱软件,号称只要在后台挂上该软件,就可以轻松赚钱。

该软件有预估收入。 平均每小时可以赚到5.1元左右。 如果从早到晚挂三天,可以赚60元左右。 钱其实不多,但至少解决了三天的工资。 能够一边玩游戏一边赚钱,对于阿华来说是一个巨大的劣势。 他立即从官方网站下载了该软件。 安装注册完成后,软件提示必须完成挂机设置后才能显示所有内容。

于是阿华就按照挂机软件的设置步骤完成了配置。 当他回到首页点击启动挂机时,首页显示挂机程序正在启动挂机类手机游戏源码,正在检查挂机账号配置是否完成……

正当阿华以为自己快要成功的时候,进度显示区却显示授权尚未完成,需要完成授权,有效分享人数达到10人。

于是阿华找到【我的分享】界面,将分享链接复制到自己所有的QQ群、陌陌群,并让同学帮忙下载注册,实现有效分享

但无论阿华怎么分享链接,无论有多少同学被他误导去下载注册,他的有效分享数依然达不到10个。此时的他已经不耐烦了,麻烦的操作让他根本不在状态。有心情继续。 他开始批评这个软件的真实性。

不过他还是不想浪费几个小时的功夫,于是他仔细阅读了操作说明,发现有一个有效的分享可以获得0.2元的奖励。 输入自己的支付宝账号,点击申请结算,弹出框显示申请成功,将于次日23:00前完成结算。

阿华想测试一下这0.2元是否可以转入他的支付宝。 如果它到达,就证明该软件不是骗局。 如果没有到达,也不会浪费时间。

第二天,阿花的支付宝果然收到了0.2元的现金结算。 对方的账户名确实是软件的名称。

技术分析:

大师实在是看不出来阿华在这些事情上浪费了大把的大学时光挂机类手机游戏源码,所以才出去用技术手段来解开谜团。

第一步

破解源代码

高手首先通过技术手段获取了这款挂机软件Android版的源代码,发现该软件是由【易语言】开发的。

第二步

分析注册条目

通过分析挂机设置的源码可知,该软件只进行了简单的逻辑设置,也就是说,在判断输入框中的账号和密码时,只判断是否为空,以及账户密码是否大于五位,只要满足这两个条件就可以配置成功。 也就是说,账号和密码都小于五位,所以这个软件并不关心你输入什么账号和密码。

从里面的代码分析可以看出,用户听到的“配置”等信息是硬编码在代码中的,目的就是给用户一种软件正在运行的错觉。 这就像这些德国黑客大片中屏幕上漂浮的代码行。 只是为了展示,没有实际意义。

第三步

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 游戏源码 挂机类手机游戏源码-为什么你的游戏总是充满不愉快,作弊者是怎么做到的? https://www.wkzy.net/game/138657.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务