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. 为Bootstrap Modal(模态框)全局添加拖拽操作

    在js中绑定方法 $(document).on("show.bs.modal", ".modal", function(){ $(this).draggable ...

  2. PHP mysqli_fetch_object MySQLi 函数

    定义和用法 mysqli_fetch_object - 返回结果集的当前行作为对象 版本支持 PHP4 PHP5 PHP7 不支持 支持 支持 语法 mysqli_fetch_object ( mys ...

  3. Python Web(一)

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.Web框架 1.socket网络编程 架构:C/S 协议:TCP/UDP 传输层 2.Web应用 架构:B/S ...

  4. PHP对URL进行字符串编码

    urlencode($url1) urldecode($url) //对URL进行字符串编码和解码 $url1 = 'https://www.baidu.com/uploade/img/123.png ...

  5. Mysql—下载安装与使用

    一.安装前准备 检查是否已经安装过mysql,执行命令,显示结果为:bt-mysql57-5.7.26-1.el7.x86_64 [root@localhost ~]# rpm -qa | grep ...

  6. Linux-3.14.12内存管理笔记【构建内存管理框架(1)】

    传统的计算机结构中,整个物理内存都是一条线上的,CPU访问整个内存空间所需要的时间都是相同的.这种内存结构被称之为UMA(Uniform Memory Architecture,一致存储结构).但是随 ...

  7. Centos7系统Docker安装

    目录 前期说明 安装步骤 1.官网中文安装参考手册 2.确定你是CentOS7及以上版本 3.yum安装gcc相关 4.卸载旧版本 5.安装需要的软件包 6.设置stable镜像仓库 7.更新yum软 ...

  8. MarkDown使用小技巧

    写作目的 笔者看完一些MarkDown入门文字后,发现很多文档对一些容易遇到的细微问题缺少解释.本文意欲稍作补充. 目标读者 使用MarkDown仅为了排版出更好看的文章,而不关注技术细节,不懂HTM ...

  9. 几款常见web扫描器的简要记录

    一.前期侦查 为了减少和目标系统的交互(防止触发报警),建议将目标站点镜像一份到本地 httrack(镜像网站到本地)  ====> 根据引导填入相关信息即可,使用非常简单 二.扫描 扫描分两种 ...

  10. 移位寄存器及verilog代码

    通用移位寄存器 作用:后续补全 )( :] Data_out, output MSB_out, LSB_out, :] Data_in, input MSB_in, LSB_in, input s0, ...