游戏数据安全——论防封

admin 2024年2月9日00:56:03评论49 views字数 2314阅读7分42秒阅读模式

PS:本文仅供交流学习 维护绿色游戏环境 从你我做起/狗头

-本文以热门FPS游戏《和平精英》为例子-

  游戏辅助有很大市场,也就说明号没了了的更多,于是“防封”就开始进入了红信玩家事业

  大家可以看到五花八门的“XX全防”“XX端口”,抛开很多圈不谈,我们讲解一下实现原理

内防

那就不得讲一下so了,so简单来说就是一个软件的内存模块。xa ca cd o内等因为有了so才有了这些内存或者有了这些内存才有的so。

so的作用:

①反外挂通过so本地检测内存值校验判断你是否修改数据,发现异常就会做出相应的惩罚,比如3650,这是本地检测

②游戏数据每个so都是一个内存模块,储存着不同的数据通过改so里面的内存模块的值即可达到游戏外挂也可以通过直接改so而达到直装效果

最好用最有效的内防大多为xa内存,而xa内存都是通过so文件释放出来的,这一类内存存在本地,是一组不会变化的内存,so在游戏运行时就会通过解密释放,你们通过修改器就可以搜索到他,所以这类数值的修改可以在gg直接修改,也可以通过修改so文件达成同样的效果,方法很简单,数字转十六进制,直接在so内查找,修改,那么这么做又会触发本地校验文件,所以还是推荐各路大神通过修改器修改最后释放出来的值,而不去通过调用二进制修改so,难免会有残留

说简单些就是屏蔽so的内存检测,比如16384,32768等等

端口/拦截

游戏端口作用:

①上传游戏数据通过上传游戏数据到游戏服务器通过对比数据来判断是否修改数据

②联网

③发送心跳包,循环检测游戏数据,和平每刷圈一次就会发送一次心跳包

--第三条就是为什么有许多内防让你刷圈大退的原因--

为什么会禁网呢?
①当so的内存检测值一直接受不到而在疯狂请求就会禁网

②接受不到心跳包就会禁网

封号顺序为:本地检测异常→上报服务器服务器发生封号

所以你拦截的是本地发送给服务器的封包,如果你认为你拦截的是服务器发送给你的封包那就错了,如果服务器收到了你的异常信息,判定发生在服务器,记录在数据库,你就已经凉了,不需要再给你发送任何信息你就是一个死人了。

那么是不是拦截住了所有封号的封包,阻止他们发送给服务器就成功了呢,答案并不是,因为有心跳包的存在,他是一个在本地沉睡守护者,特殊时期特殊操作都将会激活他发送给服务器异常数据,并且如果你把他们拦死了,他们无法与服务器发生交互,多次交互失败后也会进行封禁账号,这次的封禁是本地行为,而不是服务器行为。

所以心跳包只能够被重定向,不能被拦截,简单地说,你要让他发送出去异常数据,但是只要不发给服务器就行

什么是心跳包?

心跳包相当于一个请求,循环请求异常数据和正常数据,屏蔽了异常数据和正常数据都不会接受到,但是会禁网,因为和平每次刷圈就会发送心跳包,所以有很多人都拦截都是刷圈禁网

问:屏蔽心跳包就会禁网 不屏蔽又3650,那怎么办

答:重定向

这里给你们个例子(IP和域名不能给你们真的 我拿百度当例子)

1.重定向心跳包IP

iptables -t nat -A OUTPUT -d 110.242.68.66 -j DNAT --to-destination 192.168.1.4

2.重定向心跳包域名

iptables -t nat -I PREROUTING -m string --string "baidu.com" --algo bm -j DNAT --to-destination 192.168.1.4

3.重定向心跳包端口

iptables  -t nat -A PREROUTING -p udp  --dport 10012 -j REDIRECT --to-ports 8080iptables  -t nat -A PREROUTING -p tcp  --dport 10012 -j REDIRECT --to-ports 8080

研究了挺久,得出一个结论,重定向必须要重定向到有用的IP端口,列如8080,联网端口,192.168.1.4这个本地ip把ip和端口重定向到接受的ip端口和重定向,如果你重定向到无用的ip端口那跟拦截没什么区别,照样禁网,稳定不了多久iptables规则并不能在手机实现,需要一台服务器,通过服务器的ssh链接工具来实现,你可以直接在ssh输入iptables拦截,重定向等规则之后用软件来链接服务器就能达到防封

这里再解释一下重定向是什么
假如要访问a,把a重定向到b,那访问a就相当于访问b
有些人说重定向心跳包跟拦截一个样
拦截是什么?
host 屏蔽这是拦截
而host就是重定向 127.0.0.1 
www.baidu.com

访问百度打开的就是127.0.0.1
说白了,相当于127.0.0.1把
www.baidu.com解析了

所以那些host拦截根本不需要改IP
而屏蔽则是ip=1:65535
把1到65535的这个ip屏蔽,使其无法访问
而重定向的原理我已经说清楚了
你重定向了,这个端口还存在,只是改成访问另一个端口
说重定向没用的,我劝你去理解一下拦截,屏蔽,重定向之间的区别
和平把心跳包屏蔽了就会禁网,而重定向了心跳包,封号IP就能随便屏蔽拦截了

这里再补充一下心跳包是什么
心跳包是像心跳一样定时像服务器发送数据,会定时像服务器进行握手欄
为什么屏蔽会禁网
因为屏蔽后,心跳包会对服务器进行第一次响应ack,响应不到就会延时ack,然后再响应不到,于是再延时ack,这时间以传统响应的点到为止,心跳包已经知道你屏蔽了,于是这时间,很快嗷,啪一下重置链接,ack rts 于是你就禁网了
如果这时间你重定向了心跳包,虽然服务器接受不到响应,但是我访问b端口与访问心跳包有什么关系,我访问我的端口,你心跳包随便响应就是了,我就不访问你,你能把我咋滴

原文始发于微信公众号(零羊IT):游戏数据安全——论防封

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月9日00:56:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   游戏数据安全——论防封https://cn-sec.com/archives/2463836.html

发表评论

匿名网友 填写信息