前言

Wireshark 4.0 的第一个release候选版本已更新,目前还未正式推送升级,那么在rc1版本中究竟做了哪些升级和优化,让我们先睹为快。


新版本前瞻

1. 从4.0版本开始,官方不再提供32位应用程序安装包了。需要32位安装包,请下载3.6版本。

2. 会话和端点对话框已经过重新设计,具有以下改进:

新版会话统计页面

新版端点统计页面

  • 右键菜单新增了调整所有列大小以及复制选项。(按文本内容调整)
  • 数据可以导出为JSON格式。
  • tab选项卡可以从对话框中分离,点击关闭后会回到原有界面。
  • 添加和删除tab选项卡时,始终保持一致的tab顺序。
  • 如果应用了过滤器,则会在任一对话框中显示两列,详细说明不匹配和匹配数据包之间的区别。
  • 如果找到相同的条目,现在将通过辅助属性对列进行排序。
  • 会话按第二个地址和第一个端口号排序。
  • 端点按端口号排序。
  • IPv6地址在IPv4地址之后排序。(IPv4优先放在前面)
  • 对话框元素已被移动,以便新用户更容易处理。
  • 点击元素的选择是通过列表完成的。
  • 所有配置和选项都通过左侧按钮行完成。(左侧有协议勾选项)
  • 会话和端点对话框的列可以通过右键菜单隐藏。(在表头点击右键)
  • TCP 和 UDP会话现在包括流 ID 并允许对其进行过滤。

3.使用 MaxMind 获取地理位置的速度已大大提高。

        以下是开发者在maxmind_db.c代码中加入的说明,大致意思就是 优化了 从mmdbresolve子进程中读取数据采用了fgets的方式导致效率过低的问题。

We need to read a series of lines from mmdbresolve's stdout. Trying to
use fgets is problematic because it blocks on Windows blocks. Doing so
in a thread is even worse since it locks the I/O stream and if the main
thread calls fclose while fgets is blocking, it will block as well. The
same happens for plain close+read.

Read our input one character at a time and only after we've ensured
that data is available. If this is too inefficient we could try one
of the following:
- Use overlapped I/O, which implies adding ws_pipe_set_nonblock and
  ws_pipe_read_nonblock routines.
- Stash our worker thread handles on Windows and call CancelSynchronousIo
  before shutting down our threads.

4.Wireshark Lua API 现在使用 lrexlib 绑定到 PCRE2。 使用 Lua GRegex 模块的代码必须更新为使用 lrexlib-pcre2。 在大多数情况下,API 应该是兼容的,并且转换只需要更改模块名称。

5.Tap注册系统已更新,并且 tap_packet_cb 的参数列表已更改。 所有通过 register_tap_listener 注册的 tap_packet_cb 回调函数都必须更新。

        其中 tap_packet_cb 回调函数的定义:

typedef tap_packet_status (*tap_packet_cb)(void *tapdata, packet_info *pinfo, epan_dissect_t *edt, const void *data, tap_flags_t flags);

相对于3.6版本,tap_packet_status 多了一个参数 tap_flags_t flags。在协议监听过程中, tap_packet_status 回调函数被调用时,能够获取到TAP监听器注册时所设置的标志位。标志位如下:

//TAP监听器所需要的数据内容标志位(在数据包解析过程中填充内容,放在epan_dissect_t结构中)
#define TL_REQUIRES_NOTHING         0x00000000      //什么都不需要
#define TL_REQUIRES_PROTO_TREE      0x00000001      //需要完整的协议树
#define TL_REQUIRES_COLUMNS         0x00000002      //需要数据包列表信息
#define TL_REQUIRES_ERROR_PACKETS   0x00000004      //错误状态下的数据包//TAP监听器做什么的标志位
#define TL_IS_DISSECTOR_HELPER      0x00000008      //调用某一个协议的解析函数,本身不作处理//数据包解析回调函数应该做什么的标志位
#define TL_IGNORE_DISPLAY_FILTER    0x00000010      //使用可能会被过滤的数据包
#define TL_DISPLAY_FILTER_IGNORED   0x00100000      //会话处理标志,忽略显示过滤器

6.PCRE2 库现在是构建 Wireshark 的必需依赖项。

7.必须拥有支持 C11 的编译器才能构建 Wireshark。

8.以下库和工具的最低要求版本已增加:

  • macOS 和 Linux 需要 CMake 3.10。
  • Qt 版本 5.12(原为 5.6.0),虽然用 5.10 和 5.11 编译仍然是可能的,但在配置过程中会触发警告。
  • 由于 C11 支持问题,需要 Windows SDK 10.0.18362.0。
  • 需要 macOS 版本 10.10(原为 10.8),如果要构建 Qt 版本,则至少需要 10.11,具体取决于使用的 Qt 版本(见下文)。
  • 需要 GLib 版本 2.50.0(原为 2.38.0)。
  • 需要 Libgcrypt 版本 1.8.0(原为 1.5.0)。
  • c-ares 版本 1.14.0(原为 1.5.0)。
  • Python 版本 3.6.0(原为 3.4.0)。
  • GnuTLS 版本 3.5.8(原为 3.3.0)。
  • Nghttp2 最低版本已设置为 1.11.0(以前没有)。

9.要在 macOS 上使用 Qt 进行构建,根据要使用的 Qt 版本,需要以下版本:

  • Qt 5.10 或更高版本需要 macOS 版本 10.11
  • Qt 5.12 或更高版本需要 macOS 版本 10.12
  • Qt 5.14 或更高版本需要 macOS 版本 10.13
  • Qt 6.0 或更高版本需要 macOS 版本 10.14

10.构建 Wireshark 不再需要 Perl,但可能需要构建一些源代码文件和运行代码分析检查。

        在CMakeOptions.txt中,新增了ENABLE_CODE_ANALYSIS开关。

option(ENABLE_CODE_ANALYSIS "Enable the compiler's static analyzer if possible" OFF)


新协议支持

Allied Telesis Loop Detection (AT LDF),

AUTOSAR I-PDU Multiplexer (AUTOSAR I-PduM),

DTN Bundle Protocol Security (BPSec),

DTN Bundle Protocol Version 7 (BPv7),

DTN TCP Convergence Layer Protocol (TCPCL),

DVB Selection Information Table (DVB SIT),

Enhanced Cash Trading Interface 10.0 (XTI),

Enhanced Order Book Interface 10.0 (EOBI),

Enhanced Trading Interface 10.0 (ETI),

FiveCo’s Legacy Register Access Protocol (5co-legacy),

Generic Data Transfer Protocol (GDT),

gRPC Web (gRPC-Web),

Host IP Configuration Protocol (HICP),

Huawei GRE bonding (GREbond),

Locamation Interface Module (IDENT, CALIBRATION, SAMPLES - IM1, SAMPLES - IM2R0),

Mesh Connex (MCX),

Microsoft Cluster Remote Control Protocol (RCP),

Protected Extensible Authentication Protocol (PEAP),

Realtek, REdis Serialization Protocol v2 (RESP),

Roon Discovery (RoonDisco),

Secure File Transfer Protocol (sftp),

Secure Host IP Configuration Protocol (SHICP),

SSH File Transfer Protocol (SFTP),

USB Attached SCSI (UASP),

ZBOSS Network Coprocessor product (ZB NCP)

Wireshark 4.0.0RC1 版本前瞻相关推荐

  1. Wireshark 4.0.0 如约而至,这些新功能更新的太及时了!

    正如标题所述:Wireshark 4.0.0如约而至! 什么是 Wireshark? Wireshark 是世界上最流行的网络协议分析工具(我们一般称之为"抓包工具"),主要用于故 ...

  2. Wireshark 4.0.0 新版本发布

    前言 2022.10.4 Wireshark 4.0.0 新版本正式发布了,身处十一假期期间,自然是懒得开电脑,简单扫了下 Wireshark 4.0.0 Released,发现大版本更新的东西还挺多 ...

  3. 最近24小时记录:虚拟机与Wireshark 2.0

    最近24小时记录:虚拟机与Wireshark 2.0 (1)虚拟机如果NAT模式而无法联网,需要检查实体机中VMware的NAT服务是否开启. (2)从Wireshark 2.0版本开始,Wiresh ...

  4. Wireshark 3.0.0 正式版发布,免费开源的网络数据包分析软件

    百度智能云 云生态狂欢季 热门云产品1折起>>>   Wireshark 3.0.0 已于2月28日发布正式版,并提供了 Windows 和 macOS 平台的安装程序,源代码也已开 ...

  5. Windows中编译wireshark3.0以上版本指南

    Windows中编译wireshark3.0以上版本指南 一.摘要 在网上已有的wireshark编译的网页文档中,只有编译wireshark1.0和wireshark2.0相关版本的内容,对于已经发 ...

  6. TensorFlow 1.0.0rc1上玩量化神经网络 ——转自 慢慢学TensorFlow 微信公众号

    注 这里的量化不是指"量化交易(Quantitative trade)",而是 Quantization ,即离散化,注意是否走错片场. 前言 开发神经网络时最大的挑战是让它真正起 ...

  7. java月亮升起与落下动画设计_Java版1.0.0/开发版本

    本页面列出了Java版1.0.0的开发版本. Beta 1.9-pre1 Beta 1.9 Prerelease是Java版1.0.0的首个预发布版. 它被称为"丢失的更新", 新 ...

  8. Redis-7.0.x版本官方发行说明(附谷歌翻译)【持续更新】

    一.前言   本文使用谷歌翻译工具翻译Redis官方的7.0.x版本的发行说明,在此之前,笔者也翻译了6.2.x版本的发行说明--<Redis-6.2.x版本官方发行说明(附谷歌翻译)[持续更新 ...

  9. ubuntu18.04.1内核升级至5.0.0-25版本

    ubuntu18.04操作系统版本先已支持在线的内核版本升级,到目前为止18.04发布版已经拥有三个小版本了1,2,3. 其中18.04.01和18.04.03版本,安装好之后默认的是4.15内核版本 ...

最新文章

  1. AI又进阶!除了鉴别PS图片,还能一键卸妆
  2. 搭建OpenStack中的glance报错 403 503
  3. linux中的软RAID实现,逻辑卷和btrfs文件系统
  4. 项目经理的十二条规则
  5. 处理字符串_3_处理含引号的字符串
  6. [网络安全提高篇] 一一〇.强网杯CTF的Web Write-Up(上) 寻宝、赌徒、EasyWeb、pop_master
  7. how about one resource file has two different methods both annotated with @Post
  8. 51NOD 1220 约数之和(杜教筛)
  9. CSS每日学习笔记(0)
  10. (25)System Verilog类外约束类内变量
  11. django 基础框架学习 (一)
  12. Hyperledger fabric v2.3 通道channel 翻译
  13. java 算法基础之三合并排序法
  14. android 车牌识别 开源,在android上的车牌识别
  15. java8分组求和_Java8 stream 中利用 groupingBy 进行多字段分组求和案例
  16. Hibernate中的一级缓存、二级缓存和懒加载
  17. 高等代数 线性空间(第8章)2 同构与商空间
  18. 谭浩翔c语言,严谨细致的科技尖兵丨广州市公安局黄埔区分局民警谭浩翔
  19. Linux增加一块scsi硬盘,Linux下添加第二块scsi硬盘
  20. 按键精灵——欲望驱使之下的碧蓝航线12-4练级脚本

热门文章

  1. 程序员必看!2021最新京东Java面试题目附详细答案解析
  2. ITK 形态学处理(Morph process)
  3. 隔一段时间撸一次,特别香,HashMap中remove、getOrDefault源码,一遍一遍、又一遍
  4. 计算机组成的五大部分
  5. android 8.0 wifi-host ap 开关操作
  6. python进阶练习题:馏分类【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
  7. CompletableFuture(异步编程)
  8. access的否定形式_“肯定形式”表示“否定含义”三种形式
  9. python中多分支结构可以不用else吗_Python3基础 多分支结构 if-elif-else
  10. 学计算机的考cpa,cpa考试计算器该如何选择?