NetAnalyzer笔记 之 十四 NetAnalyzer 6.0 的使用方法 -- 3.协议分析与统计
数据分析
完成了数据的抓取,那么接下来就是NetAnalyzer的第二个重点部分了,协议分析作为整个软件的核心之一,在最新的NetAnalyzer中已经得到了巨大的提升。NetAnalyzer中协议分析分为单数据包分析,和联合分析两种分析方式,对于联合分析会根据不同的协议特性进行形成不同的分析方案,目前支持传输协议(TCP/UDP)协议分析, HTTP协议分析。在数据统计部分部分还增加了针对ARP协议的图形化分析。对于协议分析,需要了解相关的网络知识或是有相关专业背景支持。
单数据包分析,在获取到数据包后,软件工作界面数据包列表框中会显示所获取的所用数据包,并且对这次数据做了一些简单的分析,我们可以凭借这些数据简单判断所对应的的数据包类型。
数据包列表
当我们选中一行,即选中一个数据包,我们可以看到对该数据包详细的数据分析信息,并一树状结构树呈现出来,并在右侧显示该数据包原始信息。当我们选中协议树中一个字段时,右侧的数据就会定位到当前字端所分析数据的位置。
数据分析
然后通过对应的协议格式进行匹配与分析,如这部分的IP协议。
IPv4协议格式
需要注意的是,NetAnalyzer目前对于选中的字段只能精确到字节层次,对于一些协议,其中一个字节可能包含了多个字段,或是跨字节的字段,则会选择全部的字节数据,比如IPv6协议。
IPv6协议格式
其中的版本字段只占用了4bit(1字节为8bit),通信类型占了8bit 也就是1字节,但是因为其中前面部分使用了版本字段所在字节后面的4bit,所以改字段为一个典型的跨字节字段,同样流标签字段使用了20bit,占用第二个字节的4bit加上后面自身的2个字节(16bit)。
解析后的IPv6数据
对于类型的字段因为NetAnalyzer使用十六进制显示数据,并不能清晰表达bit层次的信息所以当选定字段后默认选中改字段所在的字节,如点击版本选中方式如下,
IPv6版本信息
选中通信类型和流标签则呈现方式如下。
通信类型和流标签共用数据
数据分析标签
虽然NetAnalyzer尽可能多分析每个数据包所包含的信息,但是依旧存在很多数据需要我们手动去解析。所以软件增加了数据标签。
数据分析
在数据标签页点击 显示 按钮 就可以打开数据转换窗口,当然也可以在常规转换中点击任意功能可以打开转换窗口
转换窗口管理
关闭按钮为关闭转换窗口,清空则是清空当前窗口内的数据。
点击清空按钮,则清空转换信息。
常规转换工具
NetAnalyzer中提供了一部分简单的转换功能,这些功能只有在载荷数据被选中的情况的才可以启用,
如点击二进制按钮,则对所选的数据转换为对应的二进制字符串。如下图所示。
常规数据转换窗口
除了一些简单的转换功能,还集成了MangoScript扩展方式和插件扩展方式(无可用插件的
时候不显示)的转换。
扩展MangoScript的解析
如下面通过MangoScript针对某即时通信软件的数据分析。
针对于MangoScript和插件两种方式的转换,将会在在《NetAnalyzer使用说明书 二 扩展与开发》中详细说明,此处不再赘述。
定位转换功能需要配合常规转换进行使用,有时候我们确定某个字节会在一个确定的位置出现,比如IP地址字段,我们选中该位置,位置字段就会出现一串代码 (10,1) [26]-4
(x,y)[offset] – length
x: 十六进制编辑器水平方向的偏移量
y : 十六进制编辑器垂直方向的偏移量
offset : 字节偏移量,offset = y * 16 + x
length : 当前选择的数据长度
数据转换
所以代码 (10,1) [26]-4 确定了当前IP地址的位置,此时点击 常规转换 -> IPv4地址 则会在模式中记录当前的转换模式,然后点击定位转换,就会在当前数据包列表中针对每个数据包这个位置执行定位操作,这对于寻找所需要的数据非常重要。
选择了IPv4转换
执行定位转换
对于MangoScript和插件扩展依然支持定位转换。
区块复制,主要是对一些已经选中的字节进行复制转为代码,字节数组,以及保存的功能,以及数据做手动分析,脚本分析以及自定义转换等,后续将会说明,此处不再详细介绍。
数据块操作
字节定位,与定位转换类似,但是字节定位主要是用来在数据包列表中查找相同位置出现相同字节序列的数据包。算作一个查找功能。
字节定位
分析标签
分析标签下个功能依托于数据包列表,分别有载荷数据提取,数据包标记,编码转换,数据查找,统计等相关功能,是联合分析的主要功能,下面将会着重对一下功能进行说明。
数据分析标签
TCP/UDP协议分析 前面介绍的都是基于单包的数据分析,而在协议分析中,我们大部分分析的数据都是依托于TCP/UDP的长连接数据,这部分数据的特点就是有多个数据包通过tcp或udp相关协议完成数据重组后才可以使用(基于udp的连接数据可能不是很严格)。
NetAnalyzer 除了提供基于单包的数据分析,更提供了基于连接数据的分析,而分析出来的数据不仅仅是在窗口上呈现一堆乱码,更可以通过DocBar将获取的数据提取出来进行使用。
在开始 标签最后一部分就是基于长连接的分析。点击TCP/UDP 按钮
基于TCP/UDP载荷数据查看
此时NetAnalyzer便会切换到载荷数据模式(该过程可以通过配置,使用独立窗口打开)。在该模式下会打开专有的载荷数据菜单,数据区域也会变为对于载荷数据的分析,这里先介绍一个NetAnalyzer中的DocBar工具,如下图
DocBar
在文本模式下,分析载荷数据会显示该工具条,该工具条会提供针对当前数据块的各种操作,当然在不动情况下,显示的工具和数量,都有所不同,下面是对当前各个功能的说明。
l 对当前数据块进行折叠
l 选中当前的分析数据
l 保存当前原始数据
l 查看原始数据(bytes数据)
l MangScript解析数据
l 手动测试数据
对于其他情况下的工具在这里不会一一介绍,但是碰到的时候会有说明,并且随着后续功能点的增加,DocBar可能会有更多的功能添加进来。
tcp/udp 的分析分为 文本模式和 原始模式 ,文本模式主要是用于分析载荷数据为文本的数据,我们可以通过下面两种方式更改文本编码方式,分析数据。
文本模式下,呈现方式如下:
查看载荷数据
原始模式分析如下,可用通过TCP/UDP的下拉菜单命令 字节数据 切换为原始数据
字节查询方式
字节方式呈现
对于在该功能下针对TCP的所有数据都已经进行过TCP重组,所以最终分析完成的数据并不是按照数据包方式做简单呈现就可以的,都会做数据的筛查与整理。如果需要单包分析的使用者需要注意一下。
HTTP数据分析 http作为最有网络代表意义的协议,NetAnalyzer提供了更加完善的分析,http基于tcp协议,所以数据还原等都建立在tcp数据还原的基础之上。通过http分析,我们可以还原很多有意义的数据,如获取到Http所传输的的html、js、css数据文件,还可以获取到基于http协议分析得到的图片,文件等信息,如下图分别为还原后的图片和zip压缩包。
http方式分析出的图片
http方式分析出的文件
对于常规的字符串或图片可以直接在NetAnalyzer呈现,但是对于其他类型的文件,如视频、音乐、以及上面提到的zip压缩包文件,在在NetAnalyzer会简单显示为二进制数据,该数据如果过长,则会截断显示,但是在后面会加入【全部数据】下钻选项,当点击该数据后则会打开原始数据对话框,并且会完整显示当前的数据,如下图所示。
查看原始数据
原始数据对话框中,提供了简单的数据另存为和数据识别相关的功能。
原始数据保存
保存 保存当前窗口中的数据为一个文件。
保存选择数据 是当选择对话框中其中的一段数据保存为文件,有时候数据可能存在偏差,或者我们需要提取选定的数据保存为文件,可以通过下拉保存选定的数据进行保存。
数据识别功能。
转为… 则是将当前的数据转到编码转换工具中进行进一步分析。
自动识别 为了更加快速的实现数据提取,NetAnalyzer增加了数据识别模块,通过整理不同文件的头部或尾部字节形成数据识别特征,当进行自动识别的时候,可以快速定位字节。
文件识别
添加特征 将选定的指定字节添加为文件识别头,并且添加相关信息,形成一个特征。
添加文件识别
识别管理 管理特征库,在后续将详细介绍该功能点。
载荷数据分析出的文件
除了使用常规的识别方式,在载荷数据提取中也加入了数据识别功能。在使用的时候点击数据识别就可以在下方显示被识别到的数据类型,有时候可能会存在多个类型和误识别的情况,使用的时候请务必注意。
有时候通过HTTP协议还原部分二进制数据,如下面还原ZIP文件,文档会以二进制数据呈现,而我们可以通过0x50 0x4B(PK)推断出该文件很有可能是zip文件 ,所以我们点击全部数据 ,打开原始数据窗口,这部分数据正好是zip的全部数据。
保存的zip文件内容
此时点击将当前数据保存为zip文件。减压就可以看到对应的文件内容。
在载荷数据模式下,菜单会自动切换为,载荷模式菜单
载荷数据标签
该菜单下提供了很多常用的字符串转换工具
格式转换工具
如下面通过通过Cookie格式化,格式化了http头中的cookie字段
Cookie格式化
需要注意的是使用这些字段首先需要选中被转换的文本,然后点击需对应的功能项。其中如果点击转换为…,则启动NetAnalyzer附带的编码转换工具,进行集中处理。
编码转换工具
针对html字符串数据,还提供了过滤标签和HTML预览功能,因为该部分功能都很类型,且使用简单,用户自行尝试使用即可。
时序图 在数据分析中,除了对于数据本身的分析之外,有时候我们还要去评测一些数据质量等方面的内容。并且可以通过图像化的方式表现出来。
TCP时序图分析
时序图模拟TCP/UDP在数据网络中的数据传输过程,还原网络通信场景,如该图可以完整的反映TCP三次握手以及断开连接四次挥手的情景。可以作为对当前分析数据从另外一个方面的反馈,更具有参考意义。
点击
时序图选项
就可以看到针对于当前tcp/udp 数据交互的情况。
数据标记
在分析标签下面,有标记功能,实现对当前采集会话数据连接的进行快速识别。
数据标记
NetAnalyzer提供了四中颜色对数据包链接进行区分。
如TCP数据包,就会通过源IP地址+源端口地址+目标IP地址+目标端口 作为一个特征来进行识别,此处的源和目标具有相对性。
注* ctrl+鼠标左键 可以实现对数据会话的快速标记 颜色为红色
标记完成的数据
通过点击清理标记,可还原数据。
数据包查找
数据包查找
在数据包列表模式下使用Ctrl+F即可以打开数据包查找功能。
该功能主要是实现快速查找数据包的功能,可以通过编号,协议,地址(mac/ip),端口,关键字等五种方式查找数据包。还可以通过数据列表导航按钮进行数据包列表浏览。
编码方式
在通过TCP/UDP 或HTTP 功能还原数据的时候,有时候会出现乱码,尤其是对非英文字符。在HTTP协议中通常都会在头部信息中携带编码方法,通过提取就可以获取到编码方式,但是仍然后部分服务并不提供编码字段,这时候就需要我们通过手动切换,来尝试还原相关信息。
通过菜单栏或者是状态栏都可以对编码方案进行切换
字符编码
状态栏字符编码
这里需要注意的是如果http头部包含了编码方式,则使用头部提供的编码方式。
数据统计
目前NetAnalyzer显示了大量的统计方式,涵盖了数据报表、流量分析、主机通信矩,传输报告、ARP报告等多种统计方式。
数据报表
报表信息
对当前捕获的数据表中的数据进行统计与归类。呈现方式如有图所示。
报表内容
包含一些基本信息,数据量与时间直线图,数据量占比,关系图等信息
NetAnalyzer笔记 之 十四 NetAnalyzer 6.0 的使用方法 -- 3.协议分析与统计的更多相关文章
- NetAnalyzer笔记 之 十二 NetAnalyzer 6.0 的使用方法 -- 1.初识NetAnalyzer
上次写NetAnalyzer使用方法是2016年的时候了,在后来NetAnalyzer经过了巨大的版本更变,但是因为个人原因,一直未对使用方法进行更新,现在NetAnalyzer最新的6.0已经发布了 ...
- C#学习笔记(十四):多态、虚方法和抽象类
虚方法/非虚方法 < 实例方法 = 非静态方法 = 非类方法(非实例方法 = 静态方法 = 类方法) 函数签名(参数列表,或参数列表 + 返回类型) using System; using Sy ...
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
- VSTO学习笔记(十四)Excel数据透视表与PowerPivot
原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...
- Python学习笔记(十四)
Python学习笔记(十四): Json and Pickle模块 shelve模块 1. Json and Pickle模块 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不 ...
- 深度学习课程笔记(十四)深度强化学习 --- Proximal Policy Optimization (PPO)
深度学习课程笔记(十四)深度强化学习 --- Proximal Policy Optimization (PPO) 2018-07-17 16:54:51 Reference: https://b ...
- NetAnalyzer笔记 之 十 通过邮件方式打造自己的bug反馈模块(C#)
在软件发布后,有个好的反馈系统,对我们后续的软件开发有着至关重要的影响,现今软件异常反馈功能模块已经成了软件中重要的组成部分了.但是对于个人软件开发者,尤其是对于我这种贫民个人软件开发者却是个不小的难 ...
- 如鹏网学习笔记(十四)ASP.NET
Asp.net笔记 一.Socket类 进行网络编程的类,可以在两台计算机之间进行网络通讯 过程: 向服务器发送指令: GET /index.html HTTP/1.1 Host:127.0.0.1: ...
- 《Android源代码设计模式解析与实战》读书笔记(十四)
第十四章.迭代器模式 迭代器模式,又叫做游标模式.是行为型设计模式之中的一个.我们知道对容器对象的訪问必定会涉及遍历算法.我们能够将遍历的方法封装在容器中,或者不提供遍历方法,让使用容器的人自己去实现 ...
随机推荐
- jenkins 流水线学习
最佳实践: https://www.cnblogs.com/itech/p/5678643.html 一些样例 https://jenkins.io/doc/pipeline/examples/ gi ...
- javascript 之 eventLoop
首先,javascript 是一门单线程,无阻塞的脚本语言. 何为单线程:就是在任何时候都只有一条线程在执行代码. 无阻塞:就是执行代码任务时一路绿灯,畅通无阻. 无阻塞的实现主要依赖于一个机制,就是 ...
- How to delete the eclipse plugin.
click Help-->installation Details 2. choose the plugin that you want to delete.Then click uninst ...
- 王艳 201771010127《面向对象程序设计(java)》第十三周学习总结
一:理论部分. 1.事件处理基础. 1)事件源:能够产生事件的对象都可以成为事件源,如文本框.按钮等.一个事件源是一个能够注册监听器并向监听器发送事件对象的对象. 2)事件监听器:事件监听器对象接收事 ...
- SDK内本地化处理 localizedStringForKey:value:table:
参考: 1,https://developer.apple.com/documentation/foundation/nsbundle/1417694-localizedstringforkey 2, ...
- 设计模式系列之单例模式(Singleton Pattern)——确保对象的唯一性
模式概述 模式定义 模式结构图 饿汉式单例与懒汉式单例 饿汉式单例 懒汉式单例 模式应用 模式在JDK中的应用 模式在开源项目中的应用 模式总结 主要优点 适用场景 说明:设计模式系列文章是读刘伟所著 ...
- Java——倒序输出Map集合
package com.java.test.a; import java.util.ArrayList; import java.util.LinkedHashMap; import java.uti ...
- MySQL的CHAR 和 VARCHAR的区别
CHAR 和 VARCHAR 类型,CHAR 列的长度固定, VARCHAR 列中的值为可变长字符串.在检索的时候,CHAR 列删除了尾部的空格,而 VARCHAR 则保留这些空格s
- C#判断TCP连接状态
- SQL查找大小为n的连续区间
数据准备 create table sequence ( seq int not null primary key ); insert into values(3); insert into valu ...