Wireshark使用技巧:提取VOIP通话中的音频流
“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通话中的音频流的更多相关文章
- Wireshark小技巧:将IP显示为域名
" 本文介绍如何使Wireshark报文窗口的Source栏及Destination内的IP直接显示为域名,提升报文分析效率." 之前内容发现部分不够严谨的地方,所以删除重发. ...
- wireshark 使用技巧
Wireshark使用技巧-GeoIP显示IP地理位置 在使用Wireshark时,有的时候需要知道抓取的报文中某个IP地址的具体地理位置,笨一点的方法是将IP地址复制,然后通过一些软件或 ...
- voip通话分析(含语音质量)
SipAnalysis.exe使用python开发,通过抓取网卡通信包进行质量分析:1) 分析VOIP通话的发起方.挂机方及对应时间点2) 分析通话使用的媒体信息(方向.载荷.切换时间)3) 分析通话 ...
- Wireshark使用技巧
Wireshark使用技巧 在分析网络时,包应该尽量的小,只要能定位问题即可. 1. 只抓包头,在wireshark中可以设置抓包大小. 如果使用tcpdump命令: [root@server_1 / ...
- SharePoint 部署时报错: 未能提取此解决方案中的cab文件
在vs里右击SharePoint项目,选择"部署",结果报错: Error occurred in deployment step 'Add Solution':Fail to e ...
- 【Unity3D技巧】在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信 (二) : 引入中间层NotificationCenter
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 一对多的观察者模式机制有什么缺点? 想要查看 ...
- PHP提取身份证号码中的生日并验证是否成年的函数
php 提取身份证号码中的生日日期以及确定是否成年的一个函数.可以同时确定15位和18位的身份证,经本人亲测,非常好用,分享函数代码如下: <?php //用php从身份证中提取生日,包括15位 ...
- php提取身份证号码中的生日日期以及验证是否为未成年人的函数
php 提取身份证号码中的生日日期以及确定是否成年的一个函数.可以同时确定15位和18位的身份证,经本人亲测,非常好用,分享函数代码如下: <?php //用php从身份证中提取生日,包括15位 ...
- 提取PPT文件中的Vba ProjectStg Compressed Atom。Extract PPT VBA Compress Stream
http://msdn.microsoft.com/en-us/library/cc313106(v=office.12).aspx 微软文档 PartI ********************* ...
随机推荐
- 我为什么建议前端将Python 作为第二语言?
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 前端劝退师 PS:如有需要Python学习资料的小伙伴可以加点击下 ...
- FCC---Use the CSS Transform scale Property to Change the Size of an Element
To change the scale of an element, CSS has the transform property, along with its scale() function. ...
- 随意看看AtomicInteger类和CAS
最近在读jdk源码,怎么说呢?感觉收获还行,比看框架源码舒服多了,一些以前就感觉很模糊的概念和一些类的用法也清楚了好多,举个很简单的例子,我在读Integer类的时候,发现了原来这个类自带缓存,看看如 ...
- Sql之for update
for updateselect * from xxxxxxx where namemc='筛查' for update那是一种行级锁,一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁 ...
- SQL Server 通过游标重新定义单据数据的单据编号
DECLARE @Index INTSET @Index=100DECLARE UpdateCursor CURSOR FOR (SELECT DISTINCT AA.Id FROM dbo.表 ...
- 用Docker运行Jenkins自动化构建.NET Core项目
目标 当代码提交到GitHub后,自动生成构建项目并部署到服务器.接下来介绍一下如何在容器中运行Jenkins,并自动化构建GitHub上的项目,使用自动化构建来解放你的双手. 前置条件 一台已经安装 ...
- go语言设计模式之Concurrency future
future.go package future type SuccessFunc func(string) type FailFunc func(error) type ExecuteStringF ...
- 算法问题实战策略 BOARDCOVER
地址 https://algospot.com/judge/problem/read/BOARDCOVER 解法 DFS 最近似乎在简单DFS上花费太多时间了 首先扫描地图 统计可覆盖的元素个数 如果 ...
- python爬虫初认识
一.爬虫是什么? 如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛, 沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程 ...
- 更新GitHub项目出现There is no tracking information for the current branch. Please specify which branch you want to merge with. 怎么解决
git pull命令用于从另一个存储库或本地分支获取并集成(整合).git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并,它的完整格式稍稍有点复杂. 如果当前分支只有一个追 ...