游戏安全实验室 首页 游戏漏洞 查看内容

【游戏漏洞】《dnf》加密解密

发布于:2017-12-8 11:23   |    171138次阅读 作者: 外部投稿    |   原作者: 外部投稿

网络游戏客户端有很多数据是不想让别人读取到的

这个时候就会对重要的游戏数据进行加密

极端情况下还可能对所有数据进行加密

加密有简单的加密和复杂的加密,简单的加密例如QQ仙侠传人物坐标*1000  天涯明月刀血量xor一个常量,这些简单的加密只是起到你不能用CE,八门神器,烧饼修改器一类的内存搜索工具直接扫描到目标地址的效果,作用微乎其微,阻挡入门级逆向人员

再就是复杂一些的加密解密算法,里面还可能掺杂着大量的VM和混淆,这种就较难分析,如果vm严重的话是偷不出来功能的,只能调用函数,那么检测的风险同时也加大。

在能偷出伪代码的时候  一定是选择偷出来最好的,可以动态调试锁定位置,然后用IDA进一步分析加密算法。

说到这里,我们拿DNF 的加密解密做实例进一步的讲解

首先我们扫描人物的血量,虽然人物血量是加密的,但是明文血量一样可以扫描的到,因为他需要显示到游戏的界面上,当然有的游戏加密以后,扫描不到明文怎么办?扫描字符串,因为他只要显示,必然要有内存地址存放的。

 

得到血量 以后我们就应该去找他的来源

如果血量不是加密的  那么我们直接应该追到人物对象.

如果是加密的  那么我们就应该追到解密算法, 过程是这样,人物对象下存放的加密血量,

经过解密函数返回真实血量,然后再通过写屏函数等显示到游戏里面

知道这样的过程 我们就很容易的去断加密函数了

对明文血量下写入断以后   我们在堆栈中找明文血量最早出现的位置(其他位置不可能是最开始的解密过程   如果不跳过去  完全是在浪费时间)

往上追其来源

来到上图的位置  是这个函数的返回值

函数里面是复杂的解密算法 ,大家可以自行分析,直接调用也好,IDA翻译代码也好,直接复制偷出来功能也好,看自己心情

 

 

可以看到算法很复杂,并没有什么真实意义,完全为了加密

 


来源:外部投稿

*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

分享到:
踩0 赞0

收藏

下一篇:【游戏漏洞】《天涯明月刀》之技能封包分析

相关阅读
最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部