Rumah >hujung hadapan web >tutorial js >Node.js mengalih keluar maklumat jahat daripada torrent files_node.js

Node.js mengalih keluar maklumat jahat daripada torrent files_node.js

WBOY
WBOYasal
2016-05-16 16:07:252432semak imbas

Pada tahun 2012, sebuah filem Jepun berjudul ABS-130 telah menimbulkan kejutan di Internet Fenomena "Saya kelihatan seperti anjing pada mulanya, tetapi sekarang saya rasa saya hodoh" muncul di Internet, yang menjadi trend Internet. pada tahun 2012. satu peristiwa besar.

Pada tahun 2014, operasi pembersihan rangkaian sedang giat dijalankan, dan semua syarikat Internet utama memberikan contoh buat sementara waktu, XX Cloud dan X Lei menjauhkan benih dari segala kejahatan. Hidup Operasi Bersih Bersih! ! (Kembalikan kepada saya, Cikgu Cang!!)

Cakera rangkaian utama dan memuat turun aplikasi mengekstrak maklumat utama daripada benih dan mengecualikannya. Di manakah sebenarnya maklumat kritikal ini disembunyikan? Mari kita ketahui.

Struktur fail torrent

Kandungan berikut adalah daripada Wikipedia

Fail benih torrent pada asasnya ialah fail teks, mengandungi maklumat Penjejak dan maklumat fail. Maklumat penjejak adalah terutamanya alamat pelayan Penjejak dan tetapan untuk pelayan Penjejak yang diperlukan untuk muat turun BT Maklumat fail dijana berdasarkan pengiraan fail sasaran, dan keputusan pengiraan dikodkan mengikut peraturan Bencode dalam. protokol BitTorrent. Prinsip utamanya ialah membahagikan hampir fail yang disediakan untuk dimuat turun ke dalam blok bersaiz sama Saiz blok mestilah kuasa integer 2k (disebabkan penyekatan maya, fail blok individu tidak dihasilkan pada cakera keras), dan setiap blok adalah. Maklumat indeks dan kod pengesahan Hash ditulis ke dalam fail benih oleh itu, fail benih adalah "indeks" fail yang dimuat turun.

Gambar di atas ialah struktur benih biasa Kata kunci jahat yang dikenal pasti disembunyikan dalam nama dan fail. nama mengandungi nama torrent, seperti: abcd-123 Sexy XXXX. Laluan dalam fail mengandungi maklumat semua fail yang akan dimuat turun, seperti: Alamat terkini komuniti CaoX.txt dan sebagainya.

Pustaka Node.js dan parse-torrent

Untuk mencari maklumat jahat dalam torrent, kami meminta perpustakaan Node.js dan parse-torrent sebagai pembantu.

Penyediaan percubaan:

Satu benih untuk memasang Node.js pada satu komputer

Mula-mula kami menggunakan npm untuk memasang perpustakaan parse-torrent, yang membantu kami mencari maklumat dalam torrent dengan cepat.

<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);

Pustaka ini akan menghuraikan maklumat benih dan mengembalikannya kepada kami dalam bentuk objek.

Lihat hasil:

nama:

fail:

Anda boleh melihat bahawa maklumat nama dan fail yang dihuraikan oleh perpustakaan parse-torrent disimpan dalam bentuk Penampan.

Membersihkan benih

Bagaimana untuk membersihkan maklumat jahat dalam benih dan mencekik benih jahat dalam buaian Perkara yang paling penting ialah membersihkan maklumat laluan dalam nama dan fail.

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);

Selepas melakukan ini, fail torrent jahat kami akan kelihatan seperti ini:

Peringkat praktikal

Mula-mula sediakan benih untuk muat turun luar talian XX Cloud.

Pada mulanya ia ditolak.

Kemudian jalankan skrip untuk membersihkan.

<code>node cleanTorrent IPTD-XXX.torrent</code>

Muat turun berjaya!

Kod sumber skrip ada di sini, kini anda perlu melihat kandungan muat turun saya! ! !

(Tanggalkan pakaian kamu dan tunjukkan ini!!!)

Akhir sekali

Artikel ini adalah perbincangan teknikal semata-mata. Terima kasih kerana membaca.

Sila luangkan sedikit masa untuk berkongsi artikel dengan rakan anda atau tinggalkan komen. Kami akan berterima kasih atas sokongan anda!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn