Maison >interface Web >js tutoriel >Node.js supprime les informations malveillantes du torrent files_node.js
En 2012, un film japonais intitulé ABS-130 a provoqué un choc sur Internet. Le phénomène « Au début, je ressemblais à un chien, mais maintenant je pense que je suis moche » est apparu sur Internet, ce qui est devenu la tendance Internet. en 2012. un grand événement.
En 2014, l'opération de nettoyage du réseau battait son plein, et toutes les grandes sociétés Internet ont donné l'exemple. Pendant un certain temps, XX Cloud et X Lei ont gardé à l'écart les germes de tout mal. Vive l’Opération Net Cleanup ! ! (Rendez-le-moi, Maître Cang !!)
Les principaux disques réseau et applications de téléchargement extraient les informations clés des graines et les excluent. Où exactement ces informations critiques sont-elles cachées ? Découvrons-le.
Structure des fichiers torrent
Le contenu suivant provient de Wikipédia
Le fichier de départ .torrent est essentiellement un fichier texte, contenant des informations sur le Tracker et des informations sur le fichier. Les informations du Tracker sont principalement l'adresse du serveur Tracker et les paramètres du serveur Tracker qui sont nécessaires aux téléchargements BT. Les informations sur le fichier sont générées sur la base du calcul du fichier cible, et les résultats du calcul sont codés selon les règles Bencode dans. le protocole BitTorrent. Son principe principal est de diviser virtuellement les fichiers proposés au téléchargement en blocs de taille égale. La taille du bloc doit être une puissance entière de 2k (en raison du blocage virtuel, les fichiers de bloc individuels ne sont pas générés sur le disque dur), et chaque bloc est. Les informations d'index et le code de vérification de hachage sont écrits dans le fichier de départ ; par conséquent, le fichier de départ est « l'index » du fichier téléchargé ;
L'image ci-dessus est la structure d'une graine typique. Les mots-clés maléfiques identifiés sont cachés dans le nom et le fichier. name contient le nom du torrent, tel que : abcd-123 Sexy XXXX. Le chemin dans le fichier contient les informations de tous les fichiers à télécharger, tels que : Dernière adresse de la communauté CaoX.txt et ainsi de suite.
Node.js et bibliothèque d'analyse-torrent
Afin de trouver les informations perverses dans le torrent, nous avons demandé aux bibliothèques Node.js et parse-torrent de nous aider.
Préparation de l'expérience :
Une graine pour installer Node.js sur un ordinateur
Nous utilisons d'abord npm pour installer la bibliothèque parse-torrent, qui nous aide à trouver rapidement les informations dans le torrent.
<code>npm install parse-torrent</code>
var fs = require("fs"); var parseTorrent = require('parse-torrent'); var info = parseTorrent(fs.readFileSync('my.torrent')); console.log(info);
Cette bibliothèque analysera les informations sur les graines et nous les renverra sous la forme d'un objet.
Afficher les résultats :
nom :
fichiers :
Vous pouvez voir que les informations sur le nom et les fichiers analysées par la bibliothèque parse-torrent sont stockées sous forme de tampon.
Nettoyage des graines
Comment nettoyer les informations maléfiques dans les graines et étrangler les graines maléfiques dans le berceau La chose la plus importante est d'effacer les informations du chemin dans le nom et les fichiers.
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);
Après cela, notre fichier torrent maléfique ressemblera à ceci :
Étape pratique
Préparez d’abord une graine pour le téléchargement hors ligne de XX Cloud.
Au début, il a été rejeté.
Ensuite, exécutez le script pour nettoyer.
<code>node cleanTorrent IPTD-XXX.torrent</code>
Téléchargement réussi !
Le code source du script est ici, vous devez maintenant jeter un œil à mon contenu téléchargé ! ! !
(Enlevez vos vêtements et montrez-moi ça !!!)
Enfin
Cet article est purement une discussion technique. Merci d'avoir lu. Veuillez signaler toute lacune.
Veuillez prendre un moment pour partager l'article avec vos amis ou laisser un commentaire. Nous vous remercierons sincèrement pour votre soutien !