广州定制网站建设公司,wordpress验证评论邮箱,搜索引擎seo外包,建设银行企业网银网站过期免责声明#xff1a;内容仅供学习参考#xff0c;请合法利用知识#xff0c;禁止进行违法犯罪活动#xff01;
如果看不懂、不知道现在做的什么#xff0c;那就跟着做完看效果
内容参考于#xff1a;易道云信息技术研究院VIP课
上一个内容#xff1a;31.其它消息的实…免责声明内容仅供学习参考请合法利用知识禁止进行违法犯罪活动
如果看不懂、不知道现在做的什么那就跟着做完看效果
内容参考于易道云信息技术研究院VIP课
上一个内容31.其它消息的实现与使用优化
这是新的一个篇章工具终于写完了里的第一个章如果没有写工具直接去上一个内容里找码云把代码下载下载然后自行编译然后根据上一个内容里的内容配置上配置数据或者直接使用百度网盘下载百度网盘里的是编译好的双击就可以用没有任何的坑这个工具后面要用这可能需要一点C语言的知识但是不知道C语言也没事因为主线是逆向分析的部分c是次要的涉及c的部分当看个乐子也就是写代码的部分当个乐子看逆向搞好再随便搞一两个星期C就能全接上了
网络数据分析与逆向有很大的区别逆向根据线索一步一步的找它是一个每操作一步都能得到及时反馈的一个事情而网络通信就不是这样网络通信是可能方向错了可能找不到方向接下来写的就是解决这个问题分析网络的原理和依据到底是什么也就是搞清楚分析网络数据包这件事情本质上是在做一件怎样的事情。
首先在网络通信中一定是有发送方和接收方发送方和接收方它俩发送方发送一个数据接收方收到一个数据想要接收方明白发送方的意思它俩就要知道数据该怎样解读也就是说本质上来讲它们必须在发送和接收之前提前知道这个数据该怎样去读或者该怎样解析比如说可以约定好 01代表什么02代表什么这样收到数据之后01执行对应的操作02执行对应的操作也就是说发送方和接收方提前就有这么一套规则编码规则而做通信分析做数据包分析它的本质就是通过分析数据包来确定它的规则。
编码解码的形式有两种 1.数据结构约定 2.数据解析约定 首先假设下方是数据结构体结合 数据结构约定 下面的文字看 struct chat_data{ char Id; char Pid; char Name[0x20]; short len; char buff[0x100]; } 数据结构约定 数据结构约定就是它数据组织的形式组织的时候就有一个结构结构体这个结构体就是一个数据结构但是这个数据结构我们不知道接收方和发送方当时写代码的时候就定义在了一个头文件头文件是写C语言用的文件里面游戏用的时候就直接用了比如一个聊天的数据 Id代表了消息序号Pid代表聊天的频道比如私聊还是什么Name是目标的名字len代表长度buff代表说话的内容就这样的一个结构游戏在组织数据的时候比如id01Pid02然后内存对齐加两个00然后目标名字是12345然后Name有20个字节所以后面有15个0然后就是len代表的聊天数据的长度如下图的编码数据包 然后结构里有很多数据没有用完所以它不可能全部发过去这个时候就会发现接收到的数据包就是下图的样子 然后就能通过之前写的分析工具来确定下图红框的内容了其它的地方的内容确定不了通过不停的多发送多更换目标下图红框的内容就可以解码了如果仔细的分析还可以发现06是字符串的长度 字符串这个东西要么末尾以0这个0不是阿拉伯数字的0是阿斯克码表里的0如下图结尾 要么就前面来个数字告诉我们字符串的长度是多少基本来讲都是这样的情况有时0会被处理让它看起来像一个正常的字符但这个东西签名的你认识后面的不认识这样就能判断出这个字符串是以什么结尾了。 然后01和02也能通过数据包的比对就能发现它们是什么数据包比对是一个很重要的方法最后就通过这些数据写成上方的 chat_data 结构体然后我们的任务也就完成了只要有了数据结构以后面对这样的数据只要把它对应进去也就能解析它的内容了这样的话对于游戏来讲它每一个里面每一个通信都有一个数据结构接下来要做的就是把每一个数据结构都给解读出来解读的越多就对它网络的控制能力也就越强这就是基于数据结构约定。 数据解析约定或者叫数据解码约定
首先还是一个结构体 struct chat_data2{ char Id; char Pid; char Name[0x20]; short len; char buff[0x100]; } 就是没有数据结构然后给发送的数据它就是一段数据比如用01代表char类型02代表short类型03代表bool类型04代表int类型05代表float类型06代表double类型07代表long long类型08代表char[]类型09代表wchar_t[]类型这时就不用结构体来搞了它是比如发送的是 chat_data2 这样的一个结构然后它的数据包就是01 01 08 02 08 01 02 05 00 31 32 33 34 35 06 00 31 32 33 34 35 36前面的 01 01 08 02 08 01代表的数据结构01代表char、08代表char[]、02代表short01 01 08 02 08 01后面的数据是基于 01 01 08 02 08 01来解读的这种后面的数据基于前面的数据来解读的方式就是解析约定就是提前定义好怎样解然后把解析的关键点布局图给游戏接收方然后根据这个布局图就能知道后面的数据该怎样读。 无非俩将就是 数据结构约定 和 数据解析约定这两种形式也就的是混着用的不管是哪一种只要通过数据包分析工具确定关键内容然后对于 数据解析约定 这种方式它的前面是不会变的它也不能变如果变量后面的数据会跟不上唯一变的地方就是代表长度的地方代表长度的地方通过数据包比对也能发现它数据解析约定这种操作来讲其实不如数据结构约定对于分析人员来讲数据结构约定需要把所有的数据结构都解出来数据解码约定只要把解码规则搞明白虽然解码规则没有那么好搞但实际上也没有那么难搞还是能够得到的得到之后整个网络的系统解析就被掌握住了所以在实际的开发中要用数据结构约定这种方式后面就开始分析靶场如果想用靶场需要花钱自行联系易道云信息技术研究院如果实在找不到易道云信息技术研究院联系方式可以私聊我这个程序它是用的什么约定首先要切入的点就是登陆的环节