Как стать автором
Обновить

Комментарии 50

qBitTorrent, вообще‐то, имеет открытый исходный код (и libtorrent тоже). Патч к нему надёжнее, чем бинарный патч, он слишком зависит от стабильности выхода используемого автора компилятора.

Я знаю. Честно признаться, исходно идея замышлялась на uTorrent. Потом стало интересно: а также у других или нет? И поскольку с х32 было уже скучно, нашёл такое, чтобы было ещё и х64.
Так что рассматривайте статью как пример, работающий на большинстве клиентов, неважно — закрытых или опенсорсных.

В данном случае — без разницы. Патч исходников в официальный репозиторий всё равно не возьмут, а значит под каждый релиз заново накладывать патч и пересобирать.


Кстати, есть у меня ощущение, что патч от автора не отключает блокировку DHT в qBitTorrent, а лишь заставляет GUI отображать DHT в списке трекеров таким, будто бы он включён. Судя по всему, сама блокировка dht идёт в libtorrent (функция should_announce_dht).

Именно эта процедура «заново накладывать патч и пересобирать» и является более надёжной, так что я бы не сказал «без разницы».

Патч исходников в официальный репозиторий всё равно не возьмут

Даже в виде дополнительной настройки вида «игнорировать опции torrent-файла»?
Альтернативный вариант — заменить private на, допустим, privatb.
Тогда клиент будет искать поле privatb в torrent-файле, а не найдя его — не включит соответствующий режим.
Я встречал и такой вариант патча.
Но мне кажется подмена имени для всех функций, а не только одной конкретной — не лучшая идея.
Посмотрите сколько референсов на этот private.
Да, и побочный эффект моего патча: поскольку логика работы программы нарушена только в плане обработки возврата функции и ограничения DHT, в интерфейсе будет показано, что DHT не работает. Но на самом деле сиды будут подтягиваться, при их наличии, конечно.
Сиды будут подтягиваться с таких же патченых клиенов, т.к. если изменить torrent-файл — будет другой хеш, а на оригинальном хеше с непатченным клиентом все будут сидеть с флагом private и соответственно не светя раздачу в DHT.
Зачем это нужно? Пиров-то больше не станет, у непатченные клиенты не будут анонсировать приватную раздачу по DHT, а Private-флаг меняет infohash раздачи.

Тоже про это подумал. Сиды этого торрента — пользователи приватного трекера. Откуда их станет больше? Если только какой-то добрый человек будет переопубликовывать сей торрент на других ресурсах, без регистрации и SMS. Но тогда нужны пользователи с патченными клиентами, коих тоже будет мало мало мало.

Хеш не изменится, поскольку сам торрент-файл мы не меняли. Это раз.
Зачастую, «приватный» материал — вовсе не приватный, и на DHT масса сидов. Но даже если их нет — это вовсе никак не ухудшит сиутацию, не так ли? Это два.
Хорошо, даже если infohash не меняется, откуда появятся сиды? Непатченные клиенты не будут анонсировать эту разрачу в DHT, а если такая раздача есть без флага private, то у нее будет другой infohash.
От таких же клиентов, с такими же патчами.
Отличие в том, что нет зависимости от трекера. Трекер может иметь частоту апдейта в полчаса — чтобы снизить нагрузку, а некоторые особо «приватные» — находится в дауне сутками.
При этом материал всё равно не выйдет за пределы — не зная инфохеш, скачать по DHT не удастся.
Честно говоря, я в этом плане вообще не понимаю смысл ключа private, оттого и стала интересна эта проблема.
Честно говоря, я в этом плане вообще не понимаю смысл ключа private, оттого и стала интересна эта проблема.
Его используют для того, чтобы корректно учитывать рейтинг на закрытых торрент-трекерах (чтобы сходился баланс отданного одними пользователями и скачанного другими), а не для того, чтобы ограничивать права скачивания.
Этот баланс легко обводится кучей другого софта — тем же GreedyTorrent.
Суть вешается прокси с модификацией данных, общение с трекером — через прокси, с пирами — напрямую.
Пока админ лично не займётся проверкой баланса — ничего не всплывёт. А проверять надо много и долго.
А с регулярно падающими соединениями с трекером все эти проверки и рейтинги — пустой звук.
Это все давно автоматизировано, подобные махинации выявляют в течение суток.
Ну как-то у меня не выявили, хотя накручено было более 8 Тб трафика :)
Знать надо, как, и не жадничать. Но это уже материал другой статьи )))
Прочитал по диагонали.
Не проще ли редактировать .torrent-файлы, снимать запрет DHT, неужели .torrent-файл зашифровывается в данном случае?

Написать программку которая при двойном клике на .torrent-файл, изменяет этот .torrent-файл сбрасывая «флаг запрета DHT», а затем запускает программу uTorrent, что бы uTorrent добавил файл себе на закачку.
Изменение флага ведет к изменению хэша торрента. В результате получим совсем другой торрент.
Попробуйте скачать любой торрент, отредактировать его и попробовать что-то скачать по новому торренту. Хеш изменится — и Вы не получите ничего.
По большому счету, хеш изменится, только если редактировать поле info. Но, да, изменение приватности приводит к изменению хеша.
В чем смысл патча-то? Флаг «private» находится внутри секции «info» и его установка меняет sha1 раздачи.
Т.е. файл 1.avi размещенный на публичном трекере и приватном будут иметь разные хеши и пиры все равно через DHT не состыкуются т.к. в каждом запросе отправляют свой хеш раздачи.
Смысл патча в том, чтобы не менять torrent-файл, но клиенты игнорировали это поле в torrent-файле, как будто его и не было.
Прочитайте внимательно что я написал — пиры анонсирующие в DHT раздачу без флага и с флагом «private» будут передавать разные хеши и качать друг с друга не с могут, а т.к. такими патченными клиентами, очевидно, пользуется незначительное меньшинство дополнительных пиров можно не ждать.
Итого — смысл патча не ясен.
От таких же клиентов, с такими же патчами.

И я о том же: дополнительных пиров нет и не будет. Проблему «родной аннонсер не отвечает» проще решить ручным добавлением любого публичного аннонсера, чем клиент ковырять.
Вы сами себе противоречите :)
А публичный анонсер откуда будет знать хеш из приватной раздачи?
От таких же клиентов, с такими же патчами.
Отличие в том, что нет зависимости от трекера. Трекер может иметь частоту апдейта в полчаса — чтобы снизить нагрузку, а некоторые особо «приватные» — находится в дауне сутками.

Т.е. вы обозначили проблему — родной аннонсер в дауне.
Расстроенные пользователи удаляют свой старый торрент-клиент и ставят патченный, связываются через DHT, качают.

Точно так же расстроенные пользователи могут прописать в раздачу N дополнительных публичных аннонсеров и получить тот же результат.

Где противоречие? Суммарно пиров столько же, способ проще и очевиднее.
Откуда расстроенные анонсеры знают, какие публичные анонсеры прописаны?
Где им встретиться и обсудить общую политику?
ваш патч для qbittorrent меняет поведение функции для интерфейса. в ядре qbittorrent — libtorrent — нужно патчиить код библиотеки. вот что вы поменяли github.com/qbittorrent/qBittorrent/blob/53cc8e11156d891e10f0315e98c8ddc8653fe6e7/src/base/bittorrent/torrenthandle.cpp#L265
На самом деле это как раз наоборот.
Если бы я патчил функцию — менялся бы и интерфейс, то есть для приватных торрентов было бы «DHT — работает». Но функция работает как положено, возвращает корректное значение, однако логика обработки этого значения изменена.
Кстати, был приятно удивлён qBitTorrent после долгих лет использования uTorrent. Работает шустрее, опций много полезных.
А есть в природе клиенты, лишенные данного недостатка?
А чего Вы называете это недостатком? Это — фича самого протокола, её не клиенты придумали.
Эту статью я написал ранее специально для Вас и таких же, как Вы.
Отлично, автор статьи дал в ней ссылки
>>Патчер распакованного файла uTorrent mir.cr/1BFNFS8D
>>Silent всё-в-одном патчер uTorrent: mir.cr/YBTF8OOV
ведущие на расспространителей троянов.

Трояны на хабре. Это что-то новое.
По ссылке 12 зеркал Download Link — Click Here, но конечно интереснее жмакнуть на Download Now, не заметить, что размер скачанного — да и имя файла! — отличаются, и получить адварный загрузчик от хостинг-службы.
Очень грустно, когда пользователи Хабра с указанием громкого звания «Программист» в профиле не могут работать с ссылками в интернете.
Ощущение, что со стенкой разговариваю. По вашей ссылке на вашу работу, на хабре, трояны раздаются, а вам пофиг, еще и из меня идиота делаете.
Для uTorrent 1.8.2 такой патч можете сделать?

Что никто не пользуеться transmission? Надо будет себе на роутере бины перекомпилить или пропатчить попробовать в asuswrt download master.

А я уж подумал, что тут решение проблемы с блокировкой основных DHT нод в торрент-клиенте.
Торренты раньше спасали
Последняя версия, которую патчит патчер для uTorrent — 3.5.1. Однако стоит добавить что всякие репаки (от A1eksandr1 или elchupacabra) делают, похоже, то же самое.

Автор, вы можете выложить патчеры на яндекс диск /мейл.ру или еще куда? Ссылки протухли

Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории