免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
如果看不懂、不知道现在做的什么,那就跟着做完看效果
现在的代码都是依据数据包来写的,如果看不懂代码,就说明没看懂数据包
内容参考于: 易道云信息技术研究院VIP课
上一个内容:69.利用封包更新角色数据到结构体
到现在还有一半的距离就学完了,看了 网游逆向分析与插件开发 它可以掌握逆向的技能,可以随便逆,看了网络游戏逆向分析与漏洞攻防它就能掌握封包的技能,可以随意分析网络数据包利用数据包,当然现在还没写完。
然后到了现在核心的地方最难的地方,已经搞完了,现在人物基本信息有了,数据包拦截框架也有了,然后现在28数据包把人物创建完了,创建完了之后,人物移动之后人物的信息肯定会变,之前分析过接收的10开头的数据包,10开头的数据包是人物更新数据很重要的数据包,然后有没有其它数据包也是更新人物数据的现在不知道,本次就是要彻彻底底的把人物数据,就是把我们自己搞的类与游戏中的人物结构体对应起来,就是游戏人物的数据是什么,我们自己搞的类也要是什么,这样就能通过访问我们自己搞的类来访问游戏人物的信息了,本次就是要把更新信息的数据包给整理出来。
如果跟下方找出的数据包不一样,比如有的数据包找不到,或者找到了其它数据包,这种情况是正常的,下方只是查找更新角色信息数据包的方法,并不是游戏中100%是下方写的那样,找到的数据包具体以当时游戏为准
然后开始分析数据包
现在先回忆一下10数据包,下图的血量是2281,接下来会穿一件装备让血量增加
![]()
现在变成了2308
![]()
然后10数据包
![]()
然后通过数据类型表,可以准确看出29是HP
![]()
然后通过移动角色发现接收的21数据包是更新人物坐标
![]()
然后再登录一个角色,看看附近角色的创建与更新,是什么数据包,通过搜索对方角色HP来找
![]()
先用鼠标点击第一个,我们的 DataAnly.exe 程序是从鼠标选中的位置开始往后找
![]()
搜索
![]()
找到了一个
![]()
这个30数据包很大,猜测跟28数据包一样,如下图经过拆分它确实与28数据包一样,所以接收的30数据包是创建附近角色的
![]()
下面在看附近角色消失是什么数据包,如下图r角色已经离开(这个游戏在地图上按鼠标中间可以瞬移)
![]()
然后使用 r角色的id搜索(搜索之后会把所以出现搜索关键字的数据包高亮显示)
![]()
最后一次出现的位置是接收的31数据包,所以31数据包是附近角色消失的数据包
![]()
这里补充瞬移的使用方式,首先点击下图红框位置
![]()
然后鼠标移动到下图红框任意位置按鼠标中间,也就是按下滚轮键,就可以瞬移了
![]()
现在再瞬移回来
![]()
然后看对方角色数据更新的数据包,现在r角色的血量是1792
![]()
然后搜索1792
首先鼠标选中第一行
![]()
然后搜索
![]()
然后发现是接收的2D数据包
![]()
![]()
然后还有一个2E数据包,在打死对方角色的时候出现的,这个数据包很大
![]()
上图的数据类型是AF,AF在数据类型表中是 BufferListStr,buff列表,所以这个数据包应该很重要
![]()
然后10数据包也可以更新附近角色的信息,如下图10后面的id是r角色的id
![]()
然后有一个18数据包
![]()
18数据包里的B2、B3、B6与技能时间有关,如下图的数据类型表
![]()
技能名
![]()
然后再看看怪物的创建与消失的数据包,如下图已经把怪物打死了
![]()
怪物消失的数据包还是31
![]()
怪物创建的数据包还是30
![]()
30数据包里没有怪物名字,这说游戏中有一个怪物名字列表,上图162,在数据类型表里是资源的意思
![]()
然后有一个161,它的值是字符串
![]()
161在数据类型列表中的意思是配置id,所以它没有名字,需要根据这个id去一个列表中找名字
![]()
总结
18 技能属性更新
2D 更新人物属性
21 坐标
2E 大量人物属性更新
30 附近人物或NPC创建
31 人物或NPC消失