Wireshark的RTP流分析功能实战。

在VOIP协议的分析过程中,常常会遇到一些标准协议承载的语音传输,如以SIP、H.323为控制协商协议,RTP为语音数据协议的VOIP传输情况。

在语音协议的分析过程中,需要提取的一个重要项是语音内容,但是,语音内容不像文本那样,在流量中可以肉眼观察到,而是需要使用耳朵的听来进行语音内容的判断,有没有便捷的工具,来完成二进制流到声音的转换呢?有,协议分析常用的工具Wireshark就具备这个功能。

Wireshark已经很好地对标准协议进行了支持,并且支持了部分标准的音频编码格式,所以当VOIP的控制协商协议为SIP、H.323等,数据协议为RTP时,可以直接使用Wireshark的相关功能,将语音流播放,或者导出成可播放的音频文件。

下面将使用实例说明如何使用Wireshark对VOIP通话中RTP承载的音频流进行解码及提取。

首先,我们得准备一个含音频流的pcap文件,可以到Wireshark官网去下载,然后使用Wireshark打开这个pcap。

第二步,点击菜单“电话-->RTP-->RTP流”。

如果我们的Wireshark焦点刚好在一个RTP报文上,则可以直接使用“RTP流”下的“流分析”菜单,二者最终目的是一致的。

第三步,选中要分析的RTP流,一般语音都是双向的,因此我们可以点击按钮“查找反向流”来选中另一个方向的RTP流,这在一个pcap中有很多条RTP流的情况下能很大地提高分析效率。选中流后,点击按钮“分析”进入下一步RTP流分析界面。

第四步,在RTP流分析界面,界面左侧可见RTP的数据情况分析,右侧则为RTP报文的列表,上下行的RTP报文列表各占一个tab页。在这个界面下方点击按钮“播放流”,即可进入RTP播放器,在播放器中可对RTP流进行播放。

第五步,在RTP播放器中,可点击“播放图像”按钮进行播放,就能听到音频数据的实际内容了。

在RTP播放器界面的上方,为上下行两个方向的音频波形图,界面中间则为两个方向的RTP报文情况。两个方向音频的播放是按照RTP的时序进行的。

如果仅仅能进行播放,这是不够的,我们还能将RTP音频数据导出。

在RTP流分析界面内,下方的按钮“save”包含一系列功能菜单,可以将RTP流内的音频按不同要求保存,如上下行存为同一个文件,存为不同文件等,之间的区别可以逐个实操体会。

选中一项菜单,如“不同步的正向音频”菜单,则进入保存界面,和其他软件的保存功能用法相同,这里可以存为.au音频格式和.raw原始数据两种文件格式,当然,原始数据是没法直接播放的,而au格式是可以播放的。保存之后,到目的路径就能看见结果了。

这里只介绍了使用Wireshark的RTP音频分析功能的一条路径。在菜单“电话”下,还有很多路径可以达到对RTP音频流进行分析的功能,如“VOIP通话”:

这些功能,可以举一反三,都有待大家去发掘。

Wireshark提取音频流的功能就介绍到这里了,学习协议分析的知识和工具使用,关注公众号《协议分析与还原》准没错。

长按进行关注。

接下来,该过节了,明年再在这里相聚,在此提前给各位兄弟姐妹拜个早年,祝各位技术精进,工资翻番,事业顺利,阖家幸福。

Wireshark使用技巧:提取VOIP通话中的音频流的更多相关文章

  1. Wireshark小技巧:将IP显示为域名

    "  本文介绍如何使Wireshark报文窗口的Source栏及Destination内的IP直接显示为域名,提升报文分析效率." 之前内容发现部分不够严谨的地方,所以删除重发. ...

  2. wireshark 使用技巧

      Wireshark使用技巧-GeoIP显示IP地理位置     在使用Wireshark时,有的时候需要知道抓取的报文中某个IP地址的具体地理位置,笨一点的方法是将IP地址复制,然后通过一些软件或 ...

  3. voip通话分析(含语音质量)

    SipAnalysis.exe使用python开发,通过抓取网卡通信包进行质量分析:1) 分析VOIP通话的发起方.挂机方及对应时间点2) 分析通话使用的媒体信息(方向.载荷.切换时间)3) 分析通话 ...

  4. Wireshark使用技巧

    Wireshark使用技巧 在分析网络时,包应该尽量的小,只要能定位问题即可. 1. 只抓包头,在wireshark中可以设置抓包大小. 如果使用tcpdump命令: [root@server_1 / ...

  5. SharePoint 部署时报错: 未能提取此解决方案中的cab文件

    在vs里右击SharePoint项目,选择"部署",结果报错: Error occurred in deployment step 'Add Solution':Fail to e ...

  6. 【Unity3D技巧】在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信 (二) : 引入中间层NotificationCenter

    作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 一对多的观察者模式机制有什么缺点? 想要查看 ...

  7. PHP提取身份证号码中的生日并验证是否成年的函数

    php 提取身份证号码中的生日日期以及确定是否成年的一个函数.可以同时确定15位和18位的身份证,经本人亲测,非常好用,分享函数代码如下: <?php //用php从身份证中提取生日,包括15位 ...

  8. php提取身份证号码中的生日日期以及验证是否为未成年人的函数

    php 提取身份证号码中的生日日期以及确定是否成年的一个函数.可以同时确定15位和18位的身份证,经本人亲测,非常好用,分享函数代码如下: <?php //用php从身份证中提取生日,包括15位 ...

  9. 提取PPT文件中的Vba ProjectStg Compressed Atom。Extract PPT VBA Compress Stream

    http://msdn.microsoft.com/en-us/library/cc313106(v=office.12).aspx  微软文档 PartI ********************* ...

随机推荐

  1. [WPF 自定义控件]让Form在加载后自动获得焦点

    1. 需求 加载后让第一个输入框或者焦点是个很基本的功能,典型的如"登录"对话框.一般来说"登录"对话框加载后"用户名"应该马上获得焦点,用 ...

  2. Grafana+Prometheus 监控 MySQL

    转自:Grafana+Prometheus 监控 MySQL 架构图 环境 IP 环境 需装软件 192.168.0.237 mysql-5.7.20 node_exporter-0.15.2.lin ...

  3. 微信小程序新服务消息推送 —— 订阅消息

    微信团队前不久公测了「订阅消息」,原有的小程序模板消息接口将于 2020 年 1 月 10 日下线,届时将无法发送模板消息.「订阅消息」将完全替代「模板消息」,这两天得空测试了一波. 1.下发权限机制 ...

  4. Spring Boot 2 使用自定义配置

    在application.yml定义配置后,可以使用Environment来读取配置,也可以使用@Value注解让业务代码去读取配置.如果属性较多,可以定义属性映射对象. 开发环境:IntelliJ ...

  5. [20191119]探究ipcs命令输出.txt

    [20191119]探究ipcs命令输出.txt $ man ipcsIPCS(8)                    Linux Programmer's Manual              ...

  6. 更改 undo_retention 时,Lob retention 不更改 (Doc ID 563470.1)

    Lob retention not changing when undo_retention is changed (Doc ID 563470.1) APPLIES TO: Oracle Datab ...

  7. VS中添加Web References

    鼠标右击项目->添加->服务引用->高级->添加Web引用->输入URL->点击前往 如下图所示:

  8. vue项目搭建及创建、目录结构、项目启动、全局配置

    Vue项目环境搭建 """ node ~~ python:node是用c++编写用来运行js代码的 npm(cnpm) ~~ pip:npm是一个终端应用商城,可以换国内 ...

  9. 详解C++ STL map 容器

    详解C++ STL map 容器 本篇随笔简单讲解一下\(C++STL\)中的\(map\)容器的使用方法和使用技巧. map容器的概念 \(map\)的英语释义是"地图",但\( ...

  10. IT人的立功,立言,立德三不朽

    最近几个月很忙,忙着当奶爸,忙着做加班狗,忙着补裤裆学技术……以至于快忘了要思考人生了! 古人立志穷极一生追求“立德”,“立功”,“立言”,以求不朽,为万世所景仰,为后人所传颂,实现人生的意义.立德者 ...