防作弊原理

private int curATK;
private int curAtkKey;
public int CurATK {
get {
return curATK ^ curAtkKey;
}(http://www.my516.com)
set {
curAtkKey = Random.Range(0, 0xffff);
curATK = value^curAtkKey;
}
}

1
2
3
4
5
6
7
8
9
10
11
12
分析:^运算是异或运算,需要一点二进制的知识,异或运算是相同为0,不同为1,下面举例:3 ^ 4=7,3对应的二进制是11,4对应的二进制是100,异或运算之后的结果二进制是111对应的十进制就是7,下图程序验证一下:


分析
根据上面的程序你是否真真明白是如何防作弊的呢,num是我们输入的值,例如玩家当前的金币数量是4,但我们UI上的显示并不是直接Coin.Text = num.ToString(),这样玩家搜到num的内存就很容易修改了,就作弊了,我们UI上的显示值是hiddenValue^cryptoKey的值。玩家就算搜出num的值并修改了,对我们显示金币真实的数量并没有影响。

分析插件Anti-Cheat Toolkit
我们Unity开发估计很多人都会用这个插件,他是如何实现数据加密的呢,我们看下手册就会知道它是将Unity的基本数据类型都封装了一个对应的数据类型,例如:int->ObscuredInt,Float->ObscuredFloat,string->ObscuredString等。拿ObscuredInt举例:

会发现它封装了一个跟Int对应的结构体,并且有一个混淆因子cryptoKey=444444,我们再看string类型的封装的一个类ObscuredString,它的混淆因子是string cryptoKey=“4441”,如果我们用这个插件啥都不修改,那如果我是黑客,我知道当前某游戏是Unity开发的并且数据做了防外挂处理,那么我如何破解防外挂,我肯定首先就想到的就是这个插件,并且知道这些混淆因子,那么我就相对容易能破解出来,所以如何再进一步防外挂,就必须要对插件的混合因子再做一个混淆或者修改就显得很重要。

转载于:https://www.cnblogs.com/hyhy904/p/11535781.html

作弊工具包(ACTk) 为那些作弊/攻击/破解你游戏的人带来额外麻烦。 一站式提供各种反作弊技巧和技术,易于使用,附有完整的资源、详细的文档和边角案例。 共同功能 保护内存中的变量。 保护并扩展PlayerPrefs。 生成版本代码签名。 检测速度攻击。 检测时间作弊。 检测3种常见的穿墙类型。 检测外部托管的程序集。 具有ObscuredPrefs/PlayPrefs编辑器。 模糊类型 使你的敏感变量远离所有内存扫描器和搜索器。 涵盖所有基本类型和少数专用于Unity的类型。 检测作弊尝试。 视频教程 模糊的预制件 用自动迁移、加密和其他受到支持的类型替换PlayerPrefs。 可以选择将所有保存的数据锁定至设备。 包括篡改检测! 备有适用于PlayerPrefs和ObscuredPrefs的编辑器! 视频教程 代码哈希生成器 生成代码哈希签名,比较当前的哈希,确保编译后的代码不被更改。 截至目前,适用于Windows独立平台和Android。 速度攻击检测器 让你了解那些试图减缓或加速你的游戏的可恶作弊者。 正确应对时间小故障。 通过SpeedHackProofTime类抵御速度攻击。 视频教程 时间作弊检测器 利用互联网连接获得可靠的时间。 反应于会话期间或会话之间不正确的系统时间和实际作弊情况,抓住那些改变时间以加速长期流程(构建流程、精力恢复等)的人。 可在互联网连接较弱时正常运作。 穿墙检测器 涵盖3种常见的穿墙类型: •射穿墙壁 •穿过墙壁 •透视墙壁 使用通用沙盒方式,可检测未知作弊。 视频教程 注入检测器 反应于运行时注入或注入至该版本的外部托管程序集。 视频教程 总体亮点 超过6年的支持和更新! 可与micro mscorlib和IL2CPP一起使用。 具有详细的手册,带有示例和提示。 具有完整的API文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值