某游戏加密解密功能浅谈

网络游戏客户端有很多数据是不想让别人读取到的
这个时候就会对重要的游戏数据进行加密
极端情况下还可能对所有数据进行加密
加密有简单的加密和复杂的加密,简单的加密例如QQ仙侠传人物坐标*1000 天涯明月刀血量xor一个常量,这些简单的加密只是起到你不能用CE,八门神器,烧饼修改器一类的内存搜索工具直接扫描到目标地址的效果,作用微乎其微,阻挡入门级逆向人员
再就是复杂一些的加密解密算法,里面还可能掺杂着大量的VM和混淆,这种就较难分析,如果vm严重的话是偷不出来功能的,只能调用函数,那么检测的风险同时也加大。
在能偷出伪代码的时候 一定是选择偷出来最好的,可以动态调试锁定位置,然后用IDA进一步分析加密算法。
说到这里,我们拿DNF 的加密解密做实例进一步的讲解
首先我们扫描人物的血量,虽然人物血量是加密的,但是明文血量一样可以扫描的到,因为他需要显示到游戏的界面上,当然有的游戏加密以后,扫描不到明文怎么办?扫描字符串,因为他只要显示,必然要有内存地址存放的。
在这里插入图片描述
得到血量 以后我们就应该去找他的来源

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

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

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

知道这样的过程 我们就很容易的去断加密函数了
在这里插入图片描述

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

往上追其来源

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

函数里面是复杂的解密算法 ,大家可以自行分析,直接调用也好,IDA翻译代码也好,直接复制偷出来功能也好,看自己心情
在这里插入图片描述
可以看到算法很复杂,并没有什么真实意义,完全为了加密

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

douluo998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值