昨天拿出了吃灰半年已久的华为悦盒,打算试试提取电信IPTV的直播,却发现半年过去了悦盒根本开不起来认证过不了,找了10000号,维修也弄不好,就给换了个创维e900-s。感觉越换越差,但抓包的兴致起了,便一鼓作气在网上搜罗一通后总结出了这一篇教程。
本人是温州电信的IPTV,不同地区可能会有不同
需要准备:
- IPTV盒子(能连WiFi最好,不能的话最后会给出一个解决方案但没尝试过)
- 一台有无线网卡和有线网卡的电脑
- wireshark(下载地址:https://www.wireshark.org/#download免费软件,自带简体中文)、
- emedit或其他带16进制以及正则的文本编辑器
- WiFi热点软件(如“软媒WiFi助手”)
以上提及软件百度网盘下载链接: 一键提取 密码: tr79
抓包思路很简单
电脑用IPTV的PPPoE拨号,通过WiFi共享给IPTV,wireshark只需要监听电脑上的WiFi通讯或到光猫的通讯即可同时获取上行数据与下行数据,无需使用throwing star LAN tap之类的!也不用监听两次才能获取!
在电脑上链接PPPoE后,再开启软媒WiFi助手,上网方式选择那个PPPoE后开启热点,在盒子中链接热点
然后就可以打开wireshark选择对应的网卡(WiFi和连PPPoE的网卡都可以)
重启机顶盒,即可看到wireshark捕获了机顶盒的数据
待加载到主页后即可停止捕获
然后敲入http搜索
经过尝试发现这个http流中包含地址,其他地区需要自己手动实验
在http流中间的位置可以找到rtsp开头的链接,你也可以使用查找功能
在我这里中文由于是gb编码的,导致wireshark无法显示
我们可以转换为hex转存显示后找到一些16位标志
复制后切换为原始数据,粘贴并去掉空格后查找下一个
将这整段蓝色的复制下来
打开emeditor,敲入一个空格后保存,然后再选择用16进制打开文件
删掉20后粘贴
保存后再选择gb2312编码即可看到中文
(电信竟然也有CCTV5,体育测试1就是= =不过机顶盒里没这个频道,竟然还获得了IPTV的隐藏频道)
然后用正则替换就可以了
查找 .*ChannelName="(.*)",UserChannelID="(.*)",.*(rtsp.*)",Time.*
替换 #EXTINF:\2,\1\r\n\3
这段正则是我随意写的不同地区可能不通用
接着在文件头加上#EXTM3U保存为m3u即可~
机顶盒不能连WiFi的解决方案
拿路由器桥接电脑共享的WiFi,机顶盒插入路由器lan口即可开始抓包(未测试)