国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 12:51:24
字體:
來源:轉載
供稿:網友

2012 年,一部名為 ABS-130 的日本影片引起了網絡的震動,網絡上紛紛出現了 “當初求種像條狗,如今*完嫌人丑”的現象,成為了 2012 年互聯網的一件大事件。

2014年,凈網行動如火如荼地進行,各大互聯網公司都作出了表率,一時之間XX云、X雷都把萬惡的種子拒之門外。凈網行動萬歲!!(還我蒼老師!!)

各大網盤、下載應用都從種子當中提取關鍵信息,將種子拒之門外。這些關鍵信息究竟藏在哪里?讓我們一探究竟。

種子文件結構

以下內容來自維基百科

.torrent種子文件本質上是文本文件,包含Tracker信息和文件信息兩部分。Tracker信息主要是BT下載中需要用到的Tracker服務器的地址和針對Tracker服務器的設置,文件信息是根據對目標文件的計算生成的,計算結果根據BitTorrent協議內的Bencode規則進行編碼。它的主要原理是需要把提供下載的文件虛擬分成大小相等的塊,塊大小必須為2k的整數次方(由于是虛擬分塊,硬盤上并不產生各個塊文件),并把每個塊的索引信息和Hash驗證碼寫入種子文件中;所以,種子文件就是被下載文件的“索引”。

上圖是一個典型種子的結構,那些被識別出來的邪惡關鍵字就藏在 name 和 file 當中。name 包含了該種子的名字,如:abcd-123 性感XXXX。而 file 當中的 path 則包含了要下載的所有文件的信息,如:草X社區最新地址.txt等等。

Node.js 和 parse-torrent 庫

為了尋找出種子當中的邪惡信息我們請出了 Node.js 和 parse-torrent庫 作為助手。

實驗準備:

種子一枚安裝 Node.js 電腦一臺

首先我們利用 npm 安裝 parse-torrent 庫,它幫助我們快速找到種子內的信息。

npm install parse-torrent
var fs = require("fs");var parseTorrent = require('parse-torrent');var info = parseTorrent(fs.readFileSync('my.torrent'));console.log(info);

這個庫會將種子的信息解析出來,以對象的形式返回給我們。

查看結果:

name:

files:

可以看到用 parse-torrent 庫解析出來的 name 和 files 的信息都是以 Buffer 形式存儲。

清洗種子

如何將種子里的邪惡信息清洗掉,把萬惡的種子扼殺在搖籃之中,最重要的就算要清除調 name 和 files 里面 path 的信息。

function cleanInfo (info) { // 將種子名用 md5 加密 info.name = md5(info.name); info['name.utf-8'] = md5(info['name.utf-8']); var files = info.files; for (var i = 0; i < files.length; i++) {  var file = files[i];  for (var key in file) {   if (key == "path" || key == "path.utf-8") {    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[i]});fs.writeFile(dir + "/" + cleanInfos[i].name + ".torrent", buf);

經過這樣之后,我們的邪惡種子文件就變成這樣了:

實戰階段

首先準備一個種子,進行XX云的離線下載。

一開始它是被拒絕的。

然后運行腳本進行清洗。

node cleanTorrent IPTD-XXX.torrent

下載成功了!

腳本源碼放在這里了,要去看一下我的下載內容了!!!

(**都脫了你給我看這個!!!)

最后

本文純屬技術討論,感謝你的閱讀,有不足之處請為我指出。

請您花一點時間將文章分享給您的朋友或者留下評論。我們將會由衷感謝您的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 托里县| 石首市| 弥勒县| 房产| 东阿县| 云龙县| 三河市| 连州市| 淮滨县| 舒城县| 乌拉特前旗| 渑池县| 武功县| 建始县| 林甸县| 乃东县| 绥滨县| 赤水市| 通辽市| 龙陵县| 铁力市| 湖州市| 万宁市| 横山县| 道孚县| 永寿县| 贵阳市| 镇平县| 大石桥市| 宁武县| 容城县| 武清区| 航空| 越西县| 东港市| 澳门| 南汇区| 乐陵市| 昭平县| 额尔古纳市| 邯郸县|