Node.js 去掉种子(torrent)文件里的邪恶信息

首页 > node.js > Node.js 去掉种子(torrent)文件里的邪恶信息
Node.js 去掉种子(torrent)文件里的邪恶信息
torrent文件

Node.js 去掉种子(torrent)文件里的邪恶信息

首页 > node.js > Node.js 去掉种子(torrent)文件里的邪恶信息

Node.js 去掉种子(torrent)文件里的邪恶信息

torrent文件,又被称为种子,原来只是用于记录 bt下载当中所需信息的一种文件。但是随着互联网的极大发展,一些人士将一些邪恶的信息注入到了小小的 torrent文件当中,种子从此变成了邪恶的代名词。

2012 年,一部名为 ABS130 的日本影片引起了网络的震动,网络上纷纷出现了 “当初求种像条狗,如今*完嫌人丑”的现象,成为了 2012 年互联网的一件大事件。

2014年,净网行动如火如荼地进行,各大互联网公司都作出了表率,一时之间XX云、X雷都把万恶的种子拒之门外。净网行动万岁!!(还我苍老师!!)

各大网盘、下载应用都从种子当中提取关键信息,将种子拒之门外。这些关键信息究竟藏在哪里?让我们一探究竟。

种子文件结构

以下内容来自维基百科

.torrent种子文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的Bencode规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入种子文件中;所以,种子文件就是被下载文件的“索引”。

上图是一个典型种子的结构,那些被识别出来的邪恶关键字就藏在 name 和 file 当中。name 包含了该种子的名字,如:abcd123 性感XXXX。而 file 当中的 path 则包含了要下载的所有文件的信息,如:草X社区最新地址.txt等等。

Node.js 和 parsetorrent 库

为了寻找出种子当中的邪恶信息我们请出了 Node.js 和 parsetorrent库 作为助手。

实验准备:

种子一枚安装 Node.js 电脑一台

首先我们利用 npm 安装 parsetorrent 库,它帮助我们快速找到种子内的信息。

npm install parsetorrent

var fs = require(“fs”);var parseTorrent = require(‘parsetorrent’);var info = parseTorrent(fs.readFileSync(‘my.torrent’));console.log(info);这个库会将种子的信息解析出来,以对象的形式返回给我们。

查看结果:

name:

files:

可以看到用 parsetorrent 库解析出来的 name 和 files 的信息都是以 Buffer 形式存储。

清洗种子

如何将种子里的邪恶信息清洗掉,把万恶的种子扼杀在摇篮之中,最重要的就算要清除调 name 和 files 里面 path 的信息。

function cleanInfo (info){ // 将种子名用 md5 加密 info.name = md5(info.name); info[‘name.utf8’] = md5(info[‘name.utf8’]); var files = info.files; for (var i = 0; i < files.length; i++) { var file = files; for (var key in file) { if (key == "path" || key == "path.utf8") { for (var j = 0; j < file[key].length; j++) { var text = file[key][j].toString(); var dotIndex = text.lastIndexOf("."); // 将种子名用 md5 加密 file[key][j] = md5(text.slice(0,dotIndex)) + text.slice(dotIndex,text.length); } } } } return info;}// 将清洗弄净后的 info 对象重新生成一个 torrent 文件var buf = parseTorrent.toTorrentFile({ info: cleanInfos});fs.writeFile(dir + "/" + cleanInfos.name + ".torrent", buf);经过这样之后,我们的邪恶种子文件就变成这样了:

实战阶段

首先准备一个种子,进行XX云的离线下载。

一开始它是被拒绝的。

然后运行脚本进行清洗。

node cleanTorrent IPTDXXX.torrent下载成功了!

脚本源码放在这里了,要去看一下我的下载内容了!!!

(**都脱了你给我看这个!!!)

2楼:有技术 就是牛 这都可以啊

3楼:尼玛,看到最后吐了一口老血

4楼:为了下载,也算是拼了!

5楼:东西拿 弄瞪眼啊

6楼:好复杂啊 手残党一脸懵逼

7楼:这个要是做成在线的工具就好了

8楼:好复杂的科技,一脸懵逼的看完,几脸懵逼的出去

9楼:几年前就有在线工具了…现在直接百度的能直接用

10楼:馍上开花 发表于 2018715 09:49

几年前就有在线工具了…现在直接百度的能直接用

但是洗过的虽然没提示和谐,但都不能离线了

11楼:还没用过,有现成的文件可以下载吗

12楼:多少年久以前了?当时只能用于百毒云,后来也河蟹了,估计后台排除法包括了hash值的,只要文件大小不变,别想下载,只要大小变了,别想下载,因为没这文件。

13楼:好像md5变了?离线不了了

14楼:我就看看不说话。。。。。

15楼:853100013 发表于 2018715 09:37

这个要是做成在线的工具就好了

因为你的签名,我等了一分钟。。。。。

16楼:其实就是以前的种子清洗

17楼:那么现在还能用?啊阿斯达斯

18楼:有时间看看!

19楼:最开头的内容 证明是转载?

还是希望大家发帖时候,如果是转载就尊重一下原作者

20楼:wyds591101 发表于 2018715 15:43

因为你的签名,我等了一分钟。。。。。

额。。。我应该说谢谢吗?

不过,这好像之前是吧友用过的吧

21楼:感觉好高深,能简单说说唉

22楼:我还以为最后可以给一个洗种子的工具呢

23楼:为你点赞,支持

24楼:有技术 就是牛 这都可以啊

25楼:原文本来就是2014年的,不用纠结。不过清洗完还是不能用,当年就验证过了。

26楼:讲得那么复杂,lz试过吗?就是洗种啊,网上就有。洗完后确实某某云可以接受离线,问题根本离不了啊。

这贴水得,唉。

27楼:其实我是真的想不通 净网行动是为什么什么? 我一个成年人还得不到自由????

28楼:我记得当时还是不能下的说

29楼:只要源文件没变基没得救,源文件变了服务器没有也是白搭,没速度。

(0)

相关推荐