免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
如果看不懂、不知道现在做的什么,那就跟着做完看效果
内容参考于: 易道云信息技术研究院VIP课
上一个内容:39.角色数据的维护与释放
码云地址(master 分支):https://gitee.com/dye_your_fingers/titan
码云版本号:81e80bedfabb82e75a74014e7bfae1742b201dde
代码下载地址,在 titan 目录下,文件名为:titan-角色删除功能的数据包失败的分析.zip
链接:https://pan.baidu.com/s/1W-JpUcGOWbSJmMdmtMzYZg
提取码:q9n5
--来自百度网盘超级会员V4的分享
HOOK引擎,文件名为:黑兔sdk升级版.zip
链接:https://pan.baidu.com/s/1IB-Zs6hi3yU8LC2f-8hIEw
提取码:78h8
--来自百度网盘超级会员V4的分享
以 39.角色数据的维护与释放 它的代码为基础进行修改
首先登陆游戏,到角色选择界面
然后选择角色点删除角色
然后就得到了删除角色的,发送与接收的数据包,这里的接收数据包是登陆成功返回的角色信息数据包,所以这个接收的就不管了
分析发送的数据包,如下图红框是要删除的角色的名字,后面的内容就不确定是什么了
然后再删除一个确定后面的数据是常量还是变量
然后发现下图红框位置的内容没有变化,但不管怎么拆分都认不出是什么东西,也没有长度,推测后面的东西没有用,只要传前面的东西就可以,接下来进行测试
经过测试,失败了,后面的东西是有用的,下图是测试代码
由于看不懂它们是什么就把它们当做常量处理,然后现在随便模仿一个数据包后面的结构去给服务发送数据,这种东西需要靠猜,比较玄学
就按照下图红框里的结构去定义结构体
声明的结构体
模拟删除角色
结果就是失败了,后面的东西并不能当常量去处理
然后经过大量删除,大量对比数据包,发现,后面的数据也都是变量,都可能会变,一会一个样,没有什么规律,下图是过了很大一会删除的数据包,可以说跟上方图里的数据包差距很大了
现在这次的分析 可以以失败告终了,这个删除角色的数据包比想象中的复杂很多很多,现在想想如果要是我写删除的话,我应该会给服务端传递一个id代表角色的id,然后跟着token(可以理解为代表了证明已登录标志),不知道游戏传的是什么,然后通过上方真对删除角色数据包的分析,什么东西都没得到,所以接下来换一种解读方式,通过拦截游戏发送的数据包,然后对它的数据包进行修改,看看哪一个修改了会成功会失败,从而得出正确的数据包格式。详情看下一个内容
然后现在知道了删除角色的数据包头是06,所以添加一个配置
写上下图中的内容,然后点确定
现在的配置内容
本次分析的结果是失败的,所以更改的代码不会详细写出更改了何处,但代码也提交到百度网盘、码云,新加的配置文件在百度网盘