原因
过年的时候,我呆在家里,没事干。我在网上寻找各种资源。最后通过我不懈的努力,找到了一套非常优质的资源:高清图片,中文字幕,每天定时更新十份。
但是,仔细想想,觉得很奇怪。什么样的人每天能找到十部电影?什么样的人能按时给这十部电影加中文字幕?于是,在自己强烈的好奇心驱使下,我开始追查这个BT资源群的来源。
基本想法
众所周知,BT是一种P2P下载协议。当一个人想要通过蓝牙下载一个文件时,它可能通过多个对等节点下载,这些节点可能包括也可能不包括当前资源的发布者。这是因为当网络中的一些节点完成下载时,初始发布者可以确保新节点即使离线也能完成下载。所以想要找到一批BT资源的发布者,直接通过流量监控过滤当前Peer节点是不准确的。但是,如果在刚释放资源时收集并分析资源的对等节点,并及时监控每个对等节点的完成状态,就有可能找到资源的发布者(第一个种子节点)。例如,如果一个对等节点在刚刚发布时已经下载了资源的所有内容,而其他节点刚刚开始下载,我们可以将该节点视为资源的发布者。据统计,每个资源的大小约为17G,因此以4M/s的速度下载并从第一个种子节点向其他节点释放资源至少需要1小时12分钟。理论上,只要在这段时间内观察到下载资源的对等节点,就可能是种子节点释放了资源。它可以分为以下四个步骤:
步骤1:监控资源释放
这部分的功能是监控种子资源的日常发布,保证资源一发布就被跟踪分析。我通过python的requests库直接向种子搜索网站发送关键词请求,判断今天是否有新的资源发布。如果已经发布,从网站下载种子。如果一些种子搜索网站没有下载种子文件的方法,也可以通过磁链接转换成种子文件。另外,这里我也是直接从网页上获取对应资源的info-hash,以后不用重新计算了。
步骤2:分析种子文件
BT的种子文件由Bencode组织。因此,在获得BT种子文件后,可以通过用bencode解码该文件来提取以下信息:
虽然我们可以从[信息]发布者-网址字段中提取http://yb1233.vip/的域名,但我们仍然无法确定这个域名是否真的与饲养员有关。这个域名是一个网络* *网站,与色情无关。很有可能是只购买了饲养员的推广服务。因此,我继续从公告和公告列表字段中提取种子的跟踪器列表,以便通过跟踪器获得当前时间的对等节点。
步骤3:收集对等节点
在解析资源的跟踪器之后,通过资源的信息散列获得当前正在下载的对等节点。在这组情况下,提取的跟踪器支持HTTP协议和UDP协议,如http://sukebei.tracker.wf:8888/announce, UDP://9 . rarbg . com:2710/公告等。如果你想向http协议的跟踪器请求对等节点,你需要构造一个GET请求并发送给目标跟踪器。在构造的GET请求中,需要携带固定的字段,如info _ hash、peer _ id、端口、上传、下载、离开、压缩、numwant、事件等。,并将字段编码到URL中,生成的URL如下。
http://tracker2.itzmx.com:6961/announce?信息_哈希= % D43D % B0 % E7O % 5D % 87%德国% B3 % 943% 3FZ % D3 % B0 % 2FZ % CE % 28 & amp;对等id = % BB % 7D % AD % A9 % D0 % DB7 % FE % 01% 27% 09% 8Ba % A1 % 16% 8F % CD % F63 % D9 & amp;port = 34707 & amp上传= 0 & amp下载= 0 & ampleft = 431102370 & ampcompact = 1 & ampnumwant = 1000 & amp事件=已开始
跟踪器的响应也由bencode编码,请求的对等体地址可以通过bencode解码在对等体字段中解析。UDP的追踪器和http的追踪器类似,只是上面的参数拼接成一个字节串,发送过去,就能收到追踪器的回复。
步骤四,评估对等节点完成状态
根据协议,当客户端从跟踪器获得新的对等节点时,可以与对等节点建立连接并下载。然而,在下载之前,客户端需要知道远程对等节点拥有资源的哪一部分,以便实现对资源的分段请求。这一步是通过对等节点之间的握手和位域命令来实现的。首先,客户端与对等节点建立连接,并发送握手数据包。数据包的格式如下。在向对等节点发送握手包之后,客户端也将从对等节点接收握手包。此外,稍后会收到一个位字段数据包,数据包的格式如下
返回的bitField数据包包含bitarray结构,该结构标记对等节点对每条资源的所有权。如果都是1,则表示对等体已经完成资源下载。
结果分析
借助以上思路,我从1月26日到30日对这组资源进行了跟踪分析。通过分析Peer的下载完成度,发现26-27日使用1.160.61.90发布种子,28-30日使用1.160.60.3发布种子。通过IP地址可以发现发布的服务器位于台湾省,更有可能是个人地址。
事实上,这种可追溯性的主要优点是资源的释放是可预测的和周期性的。因此,我们可以在每次资源刚刚释放时进行监控和分析。一般情况下,当我们拿到资源的种子时,原出版商很可能已经下线了。另外,BT协议无法隐藏信息发布者的身份,所以BT发布资源一般不需要匿名。如果你有这个需要,你可以考虑IPFS。
参考数据
*本文原作者:TBDChen,本文属于FreeBuf原创奖励计划,未经许可禁止转载。
1.《peer 一次对BT种子的追踪小记》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《peer 一次对BT种子的追踪小记》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/1093659.html