概述

  目前主流的网络数据分析工具主要有两类,一类是http协议分析工具,如fiddler,这类工具擅长对字符串类型协议分析;另一类是原始网络数据包的监听分析,如Wireshark,这类工具擅长分析网络底层行为。这两类工具一类擅长字符串协议分析,另一类擅长网络底层行为分析,但是上述两类工具分析二进制流类型协议时,就显得力不心了,TcpEngine (官网:http://www.tcpengine.cn/)补充上述两类工具的空白,提供了二进制流协议分析的方法。

  TcpEngine擅长分析Tcp长连接协议,在数据流协议出现数据错误时使用,比如使用了tcp|websocket协议的网络游戏出现数据错误时,使用本工具对游戏网络数据分析,查找数据错误原因。这款工具不但可以在发开环境中使用,也可以在非开发环境中使用,比如网络数据错误发生在测试环境或用户环境,可以使用本工具在发生错误环境中监听拷贝网络数据,保存到文件再交给技术开发人员慢慢分析。

  目前只支持在win32平台运行,工具分两部分,应用软件部分和系统内核WFP模块,WFP(Windows Filtering Platform) 是windows推出的用于TCP/IP协议栈五层各层里面对数据包进行交互操作的基础框架,这里用于监听拷贝指定的网络数据。使用前需要安装WFP,由于WFP内核模块还没有数据签名,使用前需要按下面链接指导步骤重启和设置系统http://www.xitongcheng.com/jiaocheng/win10_article_10547.html

 界面

  启动界面如下图所示。

  运行界面如下图所示,奇数行是原始的数字流,偶数行是对应的解析后的可读数据。

使用方法

  TcpEngine使用WFP截取应用层网络数据,WFP是内核模块,进行数字签名,杀毒软件会直接报名,并且使用需要按http://www.xitongcheng.com/jiaocheng/win10_article_10547.html进行一些设置,WFP模块TcpEngine官网已公开源代码,你了可以下载重新编译。以管理员身份运算TcpEngine,点击主界面新建文档,如下图所示。

  点击开始,输入需要监听的网络地址(支持域名和真实IP地直)和端口,如下图所示。

  点击“接收并解析”或“接收不解析”,把要监听的网络信息写入WFP内核,当监听的网络有数据流通时,就拷贝一分到TcpEngine中,如下图所示。

  本示例使用的是flamingo应用演示,收到的是加密后数据,我们需要对它解密,按TcpEngine规则实现了flamingo算法,在TcpEngine官网有示例代码,使用方法,1、先暂停;2、加入解密库,如下图所示。

  再点击刷新,得到解密后的数据,如下图所示。

这时可以编写解析规则对原始数据进行解析,再“刷新并解析”,可以得到正常数据,如下图所示。

 解析规则

  每个不同的应用定义了不同的Tcp协议,面对千变万化的协议,TcpEngine提供的方案是半编程的解析规则,需要你根据自己的协议,编写解析规则来解析你的数据。解析规则借鉴了编程的变量,分支(if)和循环(for)。

  比如我们的数字流协议定义如下图所示。

  那我们对应的解析规则如下所示。

  int32 id;
  int32 msgLen;
  if(0 < msgLen)
  {
     byte[msgLen] body;
  }

如果我们的id=1000消息的消息体如下图所示。

  if(1000 == id) {
      int32 loginId = split(body);
      text[msgLen-4] = split(body);
  }

完整的解析规则如下图所示。

   如果我们的消息体是结构体数组,那么我们可以用for表达式循环解析,示例如下图所示。

   如果我们的消息体是结构体数组,那么我们可以用for表达式循环解析,示例如下图所示。

网络数据说明

  当我们的网络数据出错时,需要按我们自定义的协议规则解析网络数据成为我们可阅读的格式,一般情况下,我们的网络数字流是按固定的格式连续组成二进制数据流。我们向您提供了半编程式的方法对这类网络数据解析,把不可阅读的数字流解析成可阅读的数据格式。

  工具通过wfp内核模块从系统内核拷贝指定网络数据,当我们的网络程序向网络发送或接收一段完整的数据时,会拷贝一份应用层的数据到工具,每一条数据会生成两行数据,奇数行是原始数据,紧接偶数行是对应的解析数据。由原始数据行颜色标识数据类型,如下图所示。

解析参数

  在解析网络数据前,我们需要分别对发送和接收的数据设置好数据类型,发送和接收两种类型都要设置,发送类型的设置只对发送数据有效,接收类型的设置只对接收数据有效。

  设置参数有四种,分别是字节序;字符编码;网络协议;指定解码库(后续再说明),需要注意,参数设置必须全部小写。

  set endian = big; 设置字节序,对基本数字类型有影响,如 四个字节的int型等,目前主流的网络序都使用大端字节序,也叫网络字节序。支持的值有 big 大端字节和little小端字节序两种。

  set encoding = utf-8; 设置字符串编码,对字符串数据类型有影响,当前只支持 utf-8和local(本地类型)两种编码格式。

 数据类型

  解析规则的功能是把连续无规则无法阅读的数据流解析成规则的,可阅读的数据格式,方法是把连续的字节按变量的形式划分到一个整体并显示代表的值,如把连续的四个字节划分成整型,或如把多个字节划分成一个字符串变量,工具支持的变量类型如下列表。

数据类型列表

  char 字符型,一个字节,显示ASCII 字符。
  byte 字节型,一个字节,以十六进制显示。
  int8 有符号整型,一个字节,以十进制显示。
  uint8 无符号整型,一个字节,以十进制显示。
  int16 有符号整型,两个字节,以十进制显示。
  uint16 无符号整型,两个字节,以十进制显示。
  int32 有符号整型,四个字节,以十进制显示。
  uint32 无符号整型,四个字节,以十进制显示。
  int64 有符号整型,八个字节,以十进制显示。
  uint64 无符号整型,八个字节,以十进制显示。
  float32 有符号浮点型,四个字节,以十进制显示。
  float64 有符号浮点型,八个字节,以十进制显示。
  string 字符串型,可变长度,如果指定了长度,则按指定长度划分字节数,如果不指定长度,一直划分到遇到零为止,如果刚好本行结束,则本数据类型不参与解析。
  text 字符串型,可变长度,如果指定了长度,则按指定长度划分字节数,如果不指定长度,一直划分到遇到零为止,如果刚好本行结束,则使用下一行参与继续解析。

TCP协议分析工具TcpEngine V1.2.0使用教程的更多相关文章

  1. TCP协议调试工具TcpEngine V1.3.0使用教程

    简介   这里说的TCP协议调试定义是在开发长连接TCP协议应用时,为了验证代码流程或查找bug,需要与对端交互数据过来,当需要时可以暂停发送:单条发送:跳过发送:正常发送:发送时修改数据等.   T ...

  2. [转] 用协议分析工具学习TCP/IP

    一.前言 目前,网络的速度发展非常快,学习网络的人也越来越多,稍有网络常识的人都知道TCP/IP协议是网络的基础,是Internet的语言,可以说没有TCP/IP协议就没有互联网的今天.目前号称搞网的 ...

  3. 转:LoadRunner自带的协议分析工具

    在做性能测试的时候,协议分析是困扰初学者的难题,不过优秀的第三方协议分析工具还是挺多的,如:MiniSniffer .Wireshark .Ominpeek 等:当然他们除了帮你分析协议之外,还提供其 ...

  4. Loadrunner自带协议分析工具:Protocol Advisor

    录制脚本之前,选对协议很关键,否则错误的协议会导致Virtual User Generator 录制不到脚本,或录制的脚本不完整,有些应用可能需要选择多个协议才能完整的记录 客户端与服务器端的请求. ...

  5. wireshark tcp 协议分析 z

    虽然知道wireshark是抓包神器,只会大概大概用一下,还用一下下tcpdump,略懂一点BPF过滤器,也知道一点怎么用 wirkshark过滤相关的报文,但是对于详细的字段的含义,如何查看TCP的 ...

  6. http协议分析工具

    资源推荐 1.Wireshark抓包软件 Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshar ...

  7. wireshark tcp 协议分析

      虽然知道wireshark是抓包神器,只会大概大概用一下,还用一下下tcpdump,略懂一点BPF过滤器,也知道一点怎么用wirkshark过滤相关的报文,但是对于详细的字段的含义,如何查看TCP ...

  8. Wireshark协议分析工具应用

    一.Wireshark简介与安装 Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用W ...

  9. TCP协议分析(包结构)---转

    TCP首部格式 tcp数据是被封装在IP数据包中的,和udp类似,在IP数据包的数据部分.tcp数据包的格式如下: 源端口号和目的端口号(寻址)与udp中类似,用于寻找发端和收端应用进程.这两个值加上 ...

  10. OS Tools-GO富集分析工具的使用与解读详细教程

    我们的云平台上的GO富集分析工具,需要输入的文件表格和参数很简单,但很多同学都不明白其中的原理与结果解读,这个帖子就跟大家详细解释~ 一.GO富集介绍:       Gene Ontology(简称G ...

随机推荐

  1. 前端问题整理 Vite+Vue3+Ts 创建项目及配置 持续更新

    前端问题整理 持续更新 目录 前端问题整理 持续更新 前端 Vue 篇 @项目配置 1.node 版本过高问题 安装nvm 管理node版本 2.镜像证书无效问题 3.npm 版本问题 4.npm i ...

  2. 部署solr服务

    前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 一.Sorl单机部署 准备:solr5.5.tomcat8.5.jdk1.8 1.解压 solr-5.5.0.zip压缩包 2.复制./ ...

  3. IE8发送ajax请求无效

    IE是个非常有个性的浏览器,常规的东西在他这个都不太好使. 最开始发送ajax请求,总是不成功,也没啥报错,反正就是请求被忽略了 然后我就考虑用原生的JS来实现,然后就:哎呀  可以了...... x ...

  4. DevEco Studio 3.1 Beta新特性知多少

     原文链接:https://mp.weixin.qq.com/s/HYdNlKKA9Z51dfI1bcplDA,点击链接查看更多技术内容: DevEco Studio 3.1 Beta新特性知多少原文 ...

  5. Serverless 在阿里云函数计算中的实践

    简介: 近日,阿里云 aPaaS&Serverless 前端技术专家袁坤在 CSDN 云原生 meetup 长沙站分享了 Serverless 在阿里云函数计算 FC 的实践. 作者:CSDN ...

  6. 千万商家的智能决策引擎--AnalyticDB如何助力生意参谋双十一

    作者:算法&健兮,阿里巴巴数据技术及产品部技术专家 生意参谋介绍 生意参谋是阿里官方打造的全渠道.全链路.一站式数据平台,致力于为用户提供经营分析.市场洞察.客群洞察等多样化数据服务,帮助用户 ...

  7. 评审恩仇录——IDE也能做代码评审?

    简介: 云效Codeup推出了本地IDE插件端的评审,免除了黄药师来回华山的奔波之苦 现代科技公司的同事们平日一起交流开发规约和产品需求,肩上共同扛着业务发展和同行竞争的压力,这份还书贻剑的情谊如何能 ...

  8. 面向K8s设计误区

    K8s设计模式 Kubernetes是一个具有普遍意义的容器编排工具,它提供了一套基于容器构建分布式系统的基础依赖,其意义等同于Linux在操作系统中的地位,可以认为是分布式的操作系统. 自定义资源 ...

  9. iLogtail使用入门-K8S环境日志采集到SLS

    ​简介:iLogtail是阿里云中简单日志服务又名"SLS"的采集部分. 它用于收集遥测数据,例如日志.跟踪和指标,目前已经正式开源(https://github.com/alib ...

  10. dotnet core 3.1 将 UWP 控件嵌入到 WPF 应用 收到 UIA 消息主线程卡住

    本文记录一个问题,此问题是在 .NET Core 3.1 的 WPF 应用里面,嵌入 UWP 控件之后,在收到 UIA 的消息时,可能让主线程卡住.暂时此问题还不知道具体的复现步骤,此问题预计和 WP ...