找回密码
 点一下
查看: 2824|回复: 35

一般存檔防盜機制通常都怎麼做?

[复制链接]
发表于 2017-7-29 19:10:36 | 显示全部楼层 |阅读模式
如題因為我的存檔還是被破解了= =
发表于 2017-7-29 19:26:21 | 显示全部楼层
可以直接使用编辑器自带的存档加密,或者自己定义加密算法。关于自己定义加密算法,我发布过教程和演示图,你可以参考一下。

点评

順便問問登陸檔溢位是?  详情 回复 发表于 2017-7-29 19:59
有傳送門?  详情 回复 发表于 2017-7-29 19:33
回复

使用道具 举报

 楼主| 发表于 2017-7-29 19:33:36 | 显示全部楼层
yxxiaobin 发表于 2017-7-29 19:26
可以直接使用编辑器自带的存档加密,或者自己定义加密算法。关于自己定义加密算法,我发布过教程和演示图, ...

有傳送門?

点评

找到了話說觸發器自帶忖檔是哪一條啊?  详情 回复 发表于 2017-7-29 19:42
回复

使用道具 举报

 楼主| 发表于 2017-7-29 19:42:57 | 显示全部楼层

找到了話說觸發器自帶忖檔是哪一條啊?

点评

印象中就是一条简单的动作:加密数据集。具体它怎么加密,又是怎么解密的,似乎没有公布。不过据说有人已经破解算法了。  发表于 2017-7-29 23:12
回复

使用道具 举报

 楼主| 发表于 2017-7-29 19:59:18 | 显示全部楼层
yxxiaobin 发表于 2017-7-29 19:26
可以直接使用编辑器自带的存档加密,或者自己定义加密算法。关于自己定义加密算法,我发布过教程和演示图, ...

順便問問登陸檔溢位是?
回复

使用道具 举报

发表于 2017-7-30 01:54:35 | 显示全部楼层
自己写个简单的hash算法吧,这样网上流传的通用bank修改器就没用了。
当然也是没有办法防止会看scripts的人破解,因为可以看到算法
但是对绝大多数普通玩家就够用了。

点评

同意这种观点。不过不需要哈希什么的,简单搞个替换能达到几乎一样的效果。  详情 回复 发表于 2017-7-30 09:27
回复

使用道具 举报

发表于 2017-7-30 09:27:53 | 显示全部楼层
天翼玄雨 发表于 2017-7-30 01:54
自己写个简单的hash算法吧,这样网上流传的通用bank修改器就没用了。
当然也是没有办法防止会看scripts的 ...

同意这种观点。不过不需要哈希什么的,简单搞个替换能达到几乎一样的效果。

点评

我發現變數的咚銛颠^多會沒辦法存檔 她說登錄檔溢位= =  详情 回复 发表于 2017-7-31 20:46
回复

使用道具 举报

 楼主| 发表于 2017-7-31 20:46:37 | 显示全部楼层
yxxiaobin 发表于 2017-7-30 09:27
同意这种观点。不过不需要哈希什么的,简单搞个替换能达到几乎一样的效果。

我發現變數的咚銛颠^多會沒辦法存檔
她說登錄檔溢位= =

点评

我大概明白了,你的意思是使用变量的话会提示“登录档溢位”,我不知道登录档是什么东西,不过猜测可能是数组下标溢出,这是由于你的数组定义的过小,或者代码不正确导致输入了错误的下标。建议检查代码,可能需要改  详情 回复 发表于 2017-8-14 18:03
= =這編碼... (  发表于 2017-8-1 15:58
我打的都是繁體.... 邁算~式~多~的~話  发表于 2017-8-1 15:57
會亂碼也= =  发表于 2017-8-1 15:57
婀.... 我不知道位啥會變成那樣我再打一次 我發現變數的咚闶蕉鄷?]辦法存檔 她說登錄檔溢位= =  发表于 2017-8-1 15:55
繁体我能看懂,但是粤语语法我看不懂.....  发表于 2017-7-31 21:46
繁体我能看懂,但是粤语语法我看不懂.....  发表于 2017-7-31 21:46
回复

使用道具 举报

发表于 2017-8-14 10:36:10 | 显示全部楼层
用现成的,稍微一改就能不通用了,重复劳动没必要
回复

使用道具 举报

发表于 2017-8-14 18:03:38 | 显示全部楼层
OracleKirito 发表于 2017-7-31 20:46
我發現變數的咚銛颠^多會沒辦法存檔
她說登錄檔溢位= =

我大概明白了,你的意思是使用变量的话会提示“登录档溢位”,我不知道登录档是什么东西,不过猜测可能是数组下标溢出,这是由于你的数组定义的过小,或者代码不正确导致输入了错误的下标。建议检查代码,可能需要改大数组。
我给的演示就是使用的变量,可以确定变量是没问题的。不过有一点:bank的名字一定要字符串常数,而不能使用变量,这个在我演示也有体现。

点评

假如說我做的變數咚闶  详情 回复 发表于 2017-8-14 20:08
回复

使用道具 举报

 楼主| 发表于 2017-8-14 20:08:41 | 显示全部楼层
本帖最后由 OracleKirito 于 2017-8-14 20:14 编辑
yxxiaobin 发表于 2017-8-14 18:03
我大概明白了,你的意思是使用变量的话会提示“登录档溢位”,我不知道登录档是什么东西,不过猜测可能是 ...

假如說我做的變數是A+B+C....+K在之後的就會說登入檔溢位

点评

明白了,是超过数据的有效位数了,比如数值过大或过小。可能是版本问题,我用的简体中文版,在发生数值过大或过小时会自动mod一下,不会出现这种错误。对于这种情况,比较保险的处理方案是不要让数值相加,而是作为  详情 回复 发表于 2017-8-14 22:53
回复

使用道具 举报

发表于 2017-8-14 22:53:43 | 显示全部楼层
OracleKirito 发表于 2017-8-14 20:08
假如說我做的變數是A+B+C....+K在之後的就會說登入檔溢位

明白了,是超过数据的有效位数了,比如数值过大或过小。可能是版本问题,我用的简体中文版,在发生数值过大或过小时会自动mod一下,不会出现这种错误。对于这种情况,比较保险的处理方案是不要让数值相加,而是作为字符串连接起来,然后按照字符串加密处理。或者有加有减,但依然不保险,不排除某些加数总是很大而减数总是很小而超出限制。

点评

这个貌似网游是可以检测的啊 不知道编辑器有没有这个功能,实在不行因该可以手动检查吧 比如某些人的数据异常甚至是打到BT的级别了那不用想了肯定是修过的  详情 回复 发表于 2017-8-15 20:39
不太懂加密存档这个东西,我也不太懂这玩意加密了能管多久,我觉得要想安全的话必须定期更换加密才行  详情 回复 发表于 2017-8-15 16:25
回复

使用道具 举报

发表于 2017-8-15 16:25:03 | 显示全部楼层
yxxiaobin 发表于 2017-8-14 22:53
明白了,是超过数据的有效位数了,比如数值过大或过小。可能是版本问题,我用的简体中文版,在发生数值过 ...

不太懂加密存档这个东西,我也不太懂这玩意加密了能管多久,我觉得要想安全的话必须定期更换加密才行

点评

一个技术上的问题是:你无法知道玩家的存档是正常的,还是破解修改的。换加密时都得承认他们。  发表于 2017-8-15 17:57
回复

使用道具 举报

发表于 2017-8-15 20:39:58 | 显示全部楼层
yxxiaobin 发表于 2017-8-14 22:53
明白了,是超过数据的有效位数了,比如数值过大或过小。可能是版本问题,我用的简体中文版,在发生数值过 ...

这个貌似网游是可以检测的啊 不知道编辑器有没有这个功能,实在不行因该可以手动检查吧 比如某些人的数据异常甚至是打到BT的级别了那不用想了肯定是修过的
回复

使用道具 举报

发表于 2017-8-15 22:59:37 | 显示全部楼层
wyg5105478 发表于 2017-8-15 20:39
这个貌似网游是可以检测的啊 不知道编辑器有没有这个功能,实在不行因该可以手动检查吧 比如某些人的数据 ...

BT的还是有可能被反掉的,不过如果是比较正常的数据就没法子了。比如玩家本来是玩了5场游戏,获得了100点经验,但是他改成玩了500场游戏,获得了10000点经验,你没法子知道这是不是真的,毕竟不排除有人就可以玩到500场。
其实更新算法的话,也不是没用,至少让已经被破解的算法失效,玩家就不能在百度上直接获取修改方案了。如果还想修改,只能期待有人再次破解,并公布算法。所以这个就相当于是破解与反破解的较量了。一般如果你百度一下就能找到自己的地图存档的修改方案,那么就更新一下好了。
至于已经采用破解方案修改掉的存档,只好当他合法了。其实你就算是反掉也没用,这个被反掉的玩家基本就会从此不玩你的地图了。
回复

使用道具 举报

 楼主| 发表于 2017-8-16 19:44:56 | 显示全部楼层
yxxiaobin 发表于 2017-8-15 22:59
BT的还是有可能被反掉的,不过如果是比较正常的数据就没法子了。比如玩家本来是玩了5场游戏,获得了100点 ...

那麼ˋ字串的長度有限制嗎?
回复

使用道具 举报

发表于 2017-8-17 09:16:42 | 显示全部楼层
OracleKirito 发表于 2017-8-16 19:44
那麼ˋ字串的長度有限制嗎?

有长度限制,不过仅仅是连接数值的话,几乎不可能达到上限的。另外计算法也不是不可以,不过你得多加几个判断:当两个数都为正,且的任意一个数高于一个“值”时用减,其余情况用加。这个“值”建议取有效范围正、数的一半略少,比如整数的有效范围为:[-2147483648,2147483647],那么这个“值”就可以设置为1000000000。这样会保证取得的结果必然在有效范围内。
回复

使用道具 举报

发表于 2017-8-17 14:13:27 | 显示全部楼层
OracleKirito 发表于 2017-8-16 19:44
那麼ˋ字串的長度有限制嗎?

字符串长度是几乎相当于无线的
但是bank的每个区段的长度是有限的
回复

使用道具 举报

 楼主| 发表于 2017-8-17 20:15:14 | 显示全部楼层
yxxiaobin 发表于 2017-8-17 09:16
有长度限制,不过仅仅是连接数值的话,几乎不可能达到上限的。另外计算法也不是不可以,不过你得多加几个 ...

話說單位的52W血量是哪一種值是INT嗎?還是?還有謝謝解答我的問題
回复

使用道具 举报

发表于 2017-8-18 09:31:08 | 显示全部楼层
OracleKirito 发表于 2017-8-17 20:15
話說單位的52W血量是哪一種值是INT嗎?還是?還有謝謝解答我的問題

52W血是fixed,实数值。int和string都是几乎无法达到上限的。
要注意的是bank里不能存太长的string,如果你有很长的string要存储,要将其分割为几个键值来保存。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-23 09:03 , Processed in 0.665865 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表