1

Я знаю, что у торрент-файлов есть функция хэш-проверки, но как насчет файлов, которые не находятся в самих файлах * .torrent? Чтобы проверить торрент-файлы, ему нужны исходные значения контрольной суммы хеша самих торрент-файлов.

Например, любой может редактировать в шестнадцатеричном виде, например, помечая коды 00 или что угодно, для создания торрент-файлов

Таким образом, торрент-файлы могут быть изменены, но я обнаружил, что они могут запускаться торрент-клиентом без предупреждения. После этого мне интересно, если торрент-файлы уже изменены с помощью шестнадцатеричного редактирования, или они вносят какие-либо изменения для проверки, хэш-файлы в торрентах.

1 ответ1

1

Каждый торрент имеет уникальный идентификатор, называемый информационным хешем, и вы можете загружать файлы только от пиров, которые заполняют тот же самый информационный хеш. Если infohash отличается, даже если сами файлы могут быть одинаковыми, это все равно делает его совершенно новым торрентом.

Infohash напрямую основан на структуре info dict внутри файла .torrent. Все файлы .torrent являются структурированными данными, закодированными в формате bencode . Преобразованный в текст, этот торрент Ubuntu, например, будет выглядеть так:

{
    "announce": "http://torrent.ubuntu.com:6969/announce"
    "announce-list": [
        0: [
            0: "http://torrent.ubuntu.com:6969/announce"
        ]
        1: [
            0: "http://ipv6.torrent.ubuntu.com:6969/announce"
        ]
    ]
    "comment": "Ubuntu CD releases.ubuntu.com"
    "creation date": "1469103218"
    "info": {
        "length": "1513308160"
        "name": "ubuntu-16.04.1-desktop-amd64.iso"
        "piece length": "524288"
        "pieces": bytes [
            92 90 ed e1 86 46 26 1c 7f 40 02 6f 60 e1 17 1f a8 4b 3b ce 81 d2 c2 30
            13 d5 9c d3 b7 14 d9 d8 4e e3 21 d8 04 44 be 97 db ce c0 87 b3 d0 26 22
            c0 e1 80 d6 ec 83 75 40 86 6b 8d 88 9b bf ea db ad 49 d8 54 e4 69 ba b6
            bc ca dd ed b0 02 5c 74 22 1b bf 00 97 89 b1 b3 fa f8 21 45 5e ff 0c 65
            8f c3 00 a8 23 cd bd be 5d e5 5e 7e 2f 32 66 e3 0c 68 b3 09 de d3 1d 12
            c7 32 6b 92 2e ce 3d 67 79 dc e0 5c 53 f2 a3 a8 84 55 b8 38 c4 26 2d ac
            ... (57596 more bytes)
        ]
    }
}

Обратите внимание, как структура info: { ... } описывает все содержимое торрента - имена файлов, размеры, хэш каждого "фрагмента", а иногда и такие вещи, как бит "частный торрент". Если ваши изменения каким-либо образом изменят эту часть, это приведет к изменению информационного хэша, и вы не сможете загрузить его со старых пиров.

Но если вы что-то измените вне info диктата, проблем вообще не должно быть - при условии, конечно, что правки действительно имеют смысл. Например, вы можете свободно менять трекеры, перечисленные в announce-list , редактировать comment и, возможно, даже добавлять дополнительные поля.

Тем не менее, вместо слепого шестнадцатеричного редактирования необработанного файла, почему бы не использовать программу, которая действительно понимает структуру - например, настоящий «торрент-редактор»? Те, безусловно, существуют.

И, наконец, если ваши изменения приведут к тому, что файл больше не будет иметь действительный синтаксис bencode , это определенно "создаст проблемы", так как в программах больше не удастся загрузить файл .torrent. Это включает, например, удлинение или укорочение фрагмента текста. (В необработанном формате, который показывает ваш hex-редактор, обратите внимание, как каждая строка имеет префикс по длине, например 5:hello . Они всегда должны совпадать.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .