“ 本故事纯属虚构,如有雷同纯属巧合。”
0 游戏的加密
对着网游《天x八x》的网络请求数据,研究了一阵子,石胖子,才搞明白。原来游戏的请求数据使用了对称加密的算法。
因为网游的的实时性要求高,为了降低延时,使用了计算成本相对较低的对称加密算法。
- 网游的的实时性要求高
- 非对称加密更安全,但是耗时久
- 对称加密安全性也有一定保障
- 对称加密耗时短
并且由于这一切都是游戏的客户端,自己悄悄进行的,所以怎么解密,让石胖子好一阵子头疼。
01 一扇门
无心搬砖的石胖子,在认真研究对称加密算法,不知不觉中一整天过去了….
临近傍晚,石胖子哀叹一声:“没有人告诉我密钥是啥,这些密文,全是各种行位移,列混合,多轮加密….破解难度难以想象”
得出的结论是,如果有能力破解这些,应该就不差钱买学区房了。大别野也是信手捏来。
而且如果破解了,后续工作就可能涉及篡改数据,胆小的石胖子想了想,还是别为难自己的数学能力了。
02 一扇窗
关上了一扇门,总能找到一扇窗。石胖子决定换个思路,想了下人类是如何玩游戏的:
- 肉眼看到游戏中人物的状态和环境
- 通过手来操作人物
也就是说,游戏外挂只要做到2点,就可以了。所以需求变成了
- 通过程序来判断游戏人物状态和环境
- 程序操作游戏人物
如果从这个思路考虑,并且成功的话,就完全不需要关心游戏的数据传输了。因为外挂就是在模拟人的行为。
石胖子,想到自己去年做的一次公司内分享。分享的题目是:图片识别与Opencv。
所谓“模式识别”,通俗点讲就是 图片识别。当然,广域来说还包括声音,文字等等的识别
石胖子打算通过图片识别的方式来获取游戏人物当前的状态。简单来说,就是赋予游戏外挂视觉。
至于如何让外挂操作人物行动,就是石胖子要考虑的另一件事情了。
事情就这么欢快的决定了。石胖子打算在别人成功的路上走出自己的辉煌。改用“模式识别”的方式来继续自己的外挂之路。
03 外挂的图片识别
为了搞清楚这块的工作怎么做,石胖子又进行了一番调研。发现很多游戏外挂的制作者,并没有相关的专业知识。甚至连高数都没学过,连矩阵的秩是什么不知道,却完全不妨碍他们完成外挂的制作。
石胖子在想,那些不是互联网的从业人员的外挂制作者,编码能力肯定不如自己这个5年老码农。
而且这些不懂互联网的人也是用这种“高大上”的“图片识别”的方式来制作外挂。究竟是怎么一回事。
答案是:借力
使用现成的工具,提供收费/免费的相关底层能力支持的。比如“某mo插件”
有大量的游戏外挂制作者,都是使用这类的第三方工具/插件来处理底层工作的。
这些第三方的工具/插件都喜欢推荐制作者使用“易语言”来进行上层的外挂开发。因为有几个好处:
- 易语言多为中文
虽然中文不是合适的编程用语言,但是可以降低一部分人的语言阅读成本。增加了受众。
对,就是阅读成本,而不是学习成本。
- 依赖性强
这些插件/工具所使用的易语言都各不相同,所以如果你学了这家的易语言,就必须使用这家的工具。
- 收益点多
这里的收益点,还是对工具/插件的提供方而言。
当你使用他们的工具/插件时,你的学习课程,你的后期外挂打包,你的拓展功能定制。
这一切都是依赖于他们。都是被收钱的点。
04 石胖子要自力更生
石胖子觉得这样受制于人不好,自己又不是没有能力做这些基础的事情,只不过是少一点休息时间,为什么不从最基础的开始,做这些呢。
而且让一个互联网开发去学“易语言”花的时间,可能比自己做定制化的图片识别工具久。
新的一周:石胖子要开始写自己的图片识别代码了.....
< 未完待续 >
往下拖下面还有“加密”的小科普哦
码农在中年
人虽中年,心已老年
-1 战争中
说到战争中的加解密,就是谍报工作的一部分了,有耳熟能详的各种电影电视剧,在中国古代,军中也有密信的说法。比如:
一封平平无奇的信函,唯一需要关心的是,寄件方的印章盖在哪个字上。 然后根据事先的约定来确定这个字代表:进攻,还是撤退。
很简单,但是感觉也很难破解。
-2 对称加密
上面的例子就是典型的对称加密。
双方拿一样的密码本来进行加密和解密
常用的有ase和3des。3des之所以名字前面有个3,是因为会进行3轮的des加密,而ase则会进行10-14轮的加密循环,基本木办法解密。
-3 非称加密
理论基础是
欧拉函数 欧拉定理 费马小定理 模反元素.....
结论就是
两个素数的乘积作为公钥,而素数本身作为私钥。公钥加密数据,私钥解密数据。
人话就是:
- 有两把不一样的钥匙,叫:公钥和私钥
- 公钥锁上的箱子,公钥却开不了
- 私钥可以打开公钥锁上的箱子
比如我们常听到的HTTPS就是HTTP加上这种非对称加密协议组合而成。
-4 加密摘要加密
这是一种对数据有损的加密方式,所以解密也就变得没有什么意义了。就如同压扁的汽车,外壳恢复的再好,也启动不了一样。
不能验证“数据内容是什么”,只能验证“数据内容是否被篡改”。
一般用来保证数据的一致性。
最耳熟能详的就是MD5了
使用得当,技术才无罪,爬虫的前车之鉴,谨记。
< 科普时间END>