本文作者分享了入坑PT一年来,对BT下载机制和PT站点统计漏洞的探索。通过学习bencode和tracker协议,作者实现了一个tracker代理,能够缓存peer列表,从而在不计入下载量的情况下分享文件。该工具还能整合来自不同PT站点的peer列表,增加连接到更多peer的可能性,优化下载体验。作者还介绍了其简易的前端界面,用户可上传种子文件,工具会自动修改并提供下载,方便集成到BT客户端。网站和GitHub仓库链接也一并提供。
💡 **Tracker代理实现免统计下载**:文章核心在于介绍了一个tracker代理工具,它利用了PT站点仅依靠客户端汇报的downloaded和uploaded字段来统计数据这一机制的漏洞。该代理能够缓存特定种子的peer列表,当BT客户端向其汇报时,若缓存存在且未过期,则直接返回peer列表,从而实现下载量不计入统计的效果,满足了用户对PT ratio的要求。
🌐 **优化下载体验与跨站互联**:除了绕过统计限制,该工具还能带来额外的下载体验优化。当两个用户从不同的PT站点下载同一个种子时,若他们都使用此代理,代理会将来自不同PT站点的peer列表进行整合。这有助于用户连接到更多的peer,从而可能提高下载速度和稳定性,实现更高效的P2P共享。
💻 **简易易用的操作流程**:作者考虑到自身前端技术限制,设计了一个非常简洁易用的网页界面。用户只需上传种子文件,工具便会自动对种子进行修改(主要是修改tracker地址为代理服务器),然后提供修改后的种子文件供用户下载。用户下载后,再将修改后的种子添加到BT客户端即可开始使用,操作流程直观便捷。
我入坑 PT 也快一年了,之前偶然读到了一篇博客,讲的是 PT 机制的几个有意思的漏洞。正好我对 BT 也不是很了解,就一路从 bencode 学到 tracker 协议,现在也算是对这块比较熟悉了。
PT 只靠客户端汇报的 downloaded 和 uploaded 来统计数据,而这些字段原本不是设计来限制 ratio 的,所以自然就留下了很多可以做文章的点。我就跟着博客作者的思路,实现了一个 tracker “代理”,当 BT 客户端向代理汇报的时候代理就会检查缓存里是否有这个种子的 peer 列表,如果有并且没过期就直接返回,否则向真实 tracker 发起一个“开始下载”的请求,得到 peer 列表并存储。这样就可以实现不计入下载量的效果。
而且可能还有一个额外的好处,就是如果两个人下载同一个种子,但是通过不同的 PT 站,那么 peer 列表会被整合,让每个人都能连接到更多的 peer 。
因为我不太会前端,所以网页做得比较简单,就一个按钮,把种子上传之后会自动修改并下载修改后的种子,然后添加到 BT 客户端就可以下载了。如果感兴趣可以试一试。
网站: https://tracker.submy.org
仓库: https://github.com/arielherself/btc