十六进制更改的 torrent 文件 (*.torrent) 会产生问题吗?

十六进制更改的 torrent 文件 (*.torrent) 会产生问题吗?

我知道 torrent 文件有 hash-check 的功能,但是那些不在 *.torrent 文件本身中的文件怎么办呢?要检查 torrent 文件,需要 torrent 文件本身的原始 hash 校验和值。

例如,任何人都可以通过十六进制编辑(如标记 00 代码或任何内容)来创建 torrent 文件。

Torrent 文件可以通过这种方式更改,但我发现它们可以通过 torrent 客户端运行,没有任何警告。之后,我想知道 torrent 文件是否已被十六进制编辑更改,或者他们是否正在对 torrent 中的哈希文件进行任何类型的更改检查。

答案1

每个种子都有一个唯一的 ID,称为信息哈希,并且您只能从种子信息哈希完全相同的对等点下载文件。如果信息哈希不同,即使文件本身可能相同,这仍然会使其成为一个全新的种子。

infohash 直接基于info.torrent 文件内的 dict 结构。所有.torrent文件都是结构化数据,以本编码格式。转换为文本,这个 Ubuntu torrent– 例如 – 看起来像这样:

{
    “宣布”:“http://torrent.ubuntu.com:6969/announce”
    “公告列表”:[
        0:[
            0:“http://torrent.ubuntu.com:6969/announce”
        ]
        1:[
            0:“http://ipv6.torrent.ubuntu.com:6969/announce”
        ]
    ]
    “评论”:“Ubuntu CD releases.ubuntu.com”
    “创建日期”:“1469103218”
    “信息”:{
        “长度”:“1513308160”
        “名称”:“ubuntu-16.04.1-desktop-amd64.iso”
        “件长度”:“524288”
        “件”:字节[
            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 字节)
        ]
    }
}

注意info: { ... }结构如何描述所有的内容种子信息 – 文件名、大小、每个“片段”的哈希值,有时还包括“私人种子”信息。如果您的编辑以任何方式更改了此部分,这将导致信息哈希值发生变化,您将无法从旧对等点下载它。

但如果你改变一些东西外部但是,如果编辑infodict,则不会出现任何问题——当然,前提是编辑确实有意义。例如,您可以自由更改 中列出的跟踪器announce-list,编辑comment,甚至可以添加其他字段。

话虽如此,与其盲目地对原始文件进行十六进制编辑,为什么不使用真正理解结构的程序 - 例如真正的“torrent 编辑器”?这些肯定存在。

最后,如果你的编辑导致文件不再有效本编码语法,这肯定会“产生问题”,因为程序将无法再加载 .torrent 文件。这包括,例如,使一段文本更长或更短。(在生的十六进制编辑器显示的格式,请注意每个字符串如何以其长度作为前缀,例如5:hello。它们必须始终匹配。)

相关内容