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. PostgreSQL update set from 两表联合更新,注意与其它数据库更新语法有差别

    最近用PostgreSql数据库进行表关联更新时,发现与之前用的Sql Server 和My Sql语法有很大差别,稍微不注意,很容易出错. PostgreSql表更新时,两个表只允许一个表起别名,一 ...

  2. HTML5☞canvas

    <canvas>便签用于绘制图像,图表.不过,<canvas> 元素本身并没有绘制能力(它仅仅是图形的容器) - 您必须使用脚本JavaScript来完成实际的绘图任务.既然你 ...

  3. web渗透测试

    信息收集 网络搜索 目录遍历:site:域名 intitle:index.of 配置文件泄露:site:域名 ext:xml | ext:conf | ext:cnf | ext:reg | ext: ...

  4. Java实现命令行中的进度条功能

    前言 最近在写一个命令行中的下载工具,既然是下载文件用的,那么实时显示下载进度是非常有必要的.因此,就有了这里对进度条的实现尝试. 预览图 还是先预览下效果图吧. 这里是cmd里面的效果,总体看着还行 ...

  5. [20191115]oracle实例占用内存计算.txt

    [20191115]oracle实例占用内存计算.txt --//以前学习oracle数据库时,总想了解实例占用内存多少,我曾经在一些会议底下问过一位高手,对方说计算这个相对很难,许多东西是共享的.- ...

  6. Horovod 分布式深度学习框架相关

    最近需要 Horovod 相关的知识,在这里记录一下,进行备忘: 分布式训练,分为数据并行和模型并行两种: 模型并行:分布式系统中的不同GPU负责网络模型的不同部分.神经网络模型的不同网络层被分配到不 ...

  7. 004 C/C++ 数据类型_类型别名

    #include "stdio.h" #include "stdlib.h" //这里定义了一个结构体. struct MyStruct1 { int a; f ...

  8. 使用adb安装apk到手机

    [ADB]Android debug bridge.Android手机实际是基于Linux系统的.通过USB线将android手机与电脑连起来,在电脑上dos命令行中敲adb shell命令,可以登录 ...

  9. mongodb重点知识总结

    Mongodb总结 一.NoSQL型数据库介绍 NoSQL,泛指非关系型的数据库.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题.NoSQL(NoSQL ...

  10. 在wcharczuk/go-chart图表上打印文字

    先看效果: 源码 package main import (    "bytes"    "fmt"    "io/ioutil"    & ...