Отключаем блокировку DHT в популярных торрент-клиентах

На многих так называемых «приватных» трекерах торренты раздаются с установленным флагом, не позволяющим использовать сеть DHT. Цель этого — не допускать раздачу материала клиентам, не зарегистрированным на данном трекере. Однако для пользователя это означает уменьшение количества сидеров, иногда — значительное.
Ниже мы рассмотрим, как отключить такое ограничение в популярных торрент-клиентах. Будет рассмотрен общий подход, а также практическое применение к актуальной версии uTorrent и qBitTorrent.
1. Вступление.
В сети в прошлом выкладывалось достаточно много информации касательно так называемых «патчей DHT», равно как выкладывались и сами патчи. Однако при анализе этих данных зачастую они оказываются противоречивыми и даже в ряде случаев полностью нерабочими. Связано это с постоянным обновлением клиентов, изменением структуры программ, а в ряде случаев — неправильным подходом авторов патчей.
Мы попытаемся не просто создать готовое решение, а проанализировать основные шаги так, чтобы читатель мог даже в случае изменение в будущем самостоятельно снимать ограничения DHT в новых версиях клиентов.
2. Подготовка.
- Актуальный дистрибутив торрент-клиента.
- Архиватор, способный распаковывать инсталляционные файлы, например в случае uTorrent и qBitTorrent — 7-zip.
- Распаковщик исполняемых файлов клиента, в случае uTorrent — UPX.
- IDA или любой другой дизассемблер.
- в случае uTorrent — файл Carrier.exe;
- В случае qBitTorrent — файлы qbittorrent.exe и qbittorrent.pdb (либо их 64-разрядные аналоги, если будет изменяться 64-битный клиент).
2. Поиск и изменение кода.
В общем, реализация блокировки DHT во всех клиентах на уровне Ассемблера выглядит одинаково, это вызов функции проверки флага, и если эта функция возвращает нулевое значение — переход на область кода, которая позволяет использовать DHT:
call TestPrivate test eax, eax jz NotPrivate
по этой причине сам патч будет выражаться в простом изменении одного байта кода 74 => EB, превращающего условный переход jz в безусловный и таким образом игнорирующий проверку на «приватность».
Остаётся найти данную функцию.
На самом деле это совершенно не сложно, учитывая специфику данного кода и наличие ключевого слова «private». Откроем распакованный файл клиента uTorrent в IDA и выполним поиск по данному ключевому слову:

Видно, что с указанным ключом в uTorrent присутствует всего три участка кода. Вот как они выглядят:
Совершенно очевидно, что необходимый нам код — это третий в списке, поскольку только он представляет собой вызов функции и проверку возврата на ноль с последующим условным переходом.

Наша задача заключается в простом замене функции, как мы уже упоминали ранее:
По сути, это замена характерной последовательности
68 00 FF 69 00 E8 19 F1 FA FF 85 C0 74 07
на
68 00 FF 69 00 E8 19 F1 FA FF 85 C0 EB 07
В случае qBitTorrent задача упрощается ещё больше, поскольку разработчик вложил pdb-файл в установщик, так что названия функций будут более очевидными, и поиск по ключевому слову упрощается:

Так выглядит сам код проверки:

Как видите, по сути он неотличим от uTorrent. Патч будет аналогичным:

Это замена характерной последовательности
E8 20 CB FA FF 84 C0 74 59
на
E8 20 CB FA FF 84 C0 EB 59
qBitTorrent также предлагается в виде 64-разрядного клиента. Действия в отношении него буду совершенно аналогичными, за исключением того, что нам потребуется 64-разрядная версия IDA. Результат поиска по ключевому слову ожидаемо аналогичен:

Вид соответствующей функции несколько отличен, однако суть осталась та же:

Ну и соответствующий патч, здесь это будет три байта:

Это замена характерной последовательности
E8 8F 0E F8 FF 4C 8D 3D 54 E5 46 01 83 CB FF 84 C0 0F 84 DB 00 00 00
на
E8 8F 0E F8 FF 4C 8D 3D 54 E5 46 01 83 CB FF 84 C0 E9 DC 00 00 00 00
3. Итоги
Нами было последовательно изучена процедура поиска и отключения функции ограничения использования DHT для приватных торрентов в популярных клиентах uTorrent и qBitTorrent.
Думаю, что предложенный механизм будет аналогичен и для любых других клиентов — во всяком случае я проверил его и на ComboPlayer.
Для автоматизации процесса мной были созданы два патчера для актуальных версий uTorrent и qBitTorrent. Для uTorrent патчер также распаковывает исходный инсталлятор. Файлы можно скачать здесь:
Патчер qBitTorrent версии x32
Патчер qBitTorrent версии x64
Патчер распакованного файла uTorrent
Silent всё-в-одном патчер uTorrent: распаковывает, патчит и обратно упаковывает инсталлятор, а также распаковывает, патчит и упаковывает обратно уже установленный uTorrent (при условии, что установочная папка — по умолчанию, то есть «%userprofile%\AppData\Roaming\uTorrent\»
- Децентрализованные сети
- Assembler
- Реверс-инжиниринг
- Читальный зал
Ошибка uTorrent — DHT ожидание входа! Что делать, как исправить!


Ошибка uTorrent — DHT ожидание входа довольно часто встречается, и неприятна тем, что полностью отключает скачивание файлов, а скорость падает до нулевой отметки, тем самым все загрузки останавливаются и пользователи не могут воспользоваться программой uTorrent. Обычно ошибка заключается в том, что ваш интернет немного не настроен под данную программу, но есть и другие случаи. Форвардинг портов не разрешен на вашем провайдере, с такой ошибкой может столкнуться практически каждый из пользователей. Эта проблема заключается в том, что ваш провайдер запрещает другим пользователям и ресурсам из интернета отправлять различные сетевые данные, тем самым и закачка не может производиться должным образом. Решение подобных проблем очень легкое и простой. Чтобы разрешить проблему с форвардингом, вам нужно залезть в настройки вашего провайдера (роутера, файрвола) и разрешить получение сетевых данных от других, незнакомых источников, тем самым ошибка, связанная с dnt больше не будет появляться. Так же если у вас в торрент клиенте отключена работа с DHT, то обязательно ее включите. После всего этого вы сможете с легкостью пользоваться программой и никаких проблем у вас не будет возникать. Как включить / отключить DHT в торрент клиенте uTorrent и BitTorrent Полезные ссылки qBittorrent — BitTorrent-клиент Как увеличить скорость Торрента до Максимума? Закачка торрентов с помощью связки uTorrent + Dropbox
Адрес обзора: https://soft-arhiv.com/publ/dht_error
Комментарии и отзывы: 3
1. Айгиз • 14.11.2018
Часто проблемы с загрузкой торрентов возникают из-за неверно настроенного роутера, ADSL модема или файрвола, которые и блокируют сетевые пакеты торрент клиентов. У провайдеров как правило проблем с настройкой сети нет, зачем им терять клиентов? Торренты не запрещены.
2. Elizar • 15.11.2018
У маня появляется Ошибка uTorrent диск перегружен 100%. Как это решить?
Ответ:
В основном подобная ошибка появляется у тех, кто скачивает файлы на съемные носители и именно они не могут разрешить эту весьма странную ошибку. Чтобы решить данную проблему существует два способа.
Первый способ:
Довольно таки легкий, простой и надежный способ избавиться от этой ошибки, это открыть программу, найти пункт настройки в котором выбрать подпункт Кэширование. Ну а там пользователю придется убрать отметку с Автовыбора. Но не нужно торопиться выходить из настроек, так как прям там же вам необходимо в ручную написать число сто, тем самым вы сможете окончательно разрешить непоколебимую проблему.
Второй способ:
Одним из более усложненных способов является изменение некоторых настроек в самом компьютере, тем самым вам уже не придется при сбоях программы, постоянно настраивать то, что было описано в первом пункте. Вам нужно войти в свойства вашего персонального компьютера, ну а там воспользоваться пунктом дополнительно, где должны указать автоматический размер подкачки. Тем самым сохранить все что вы сделали, ну а после этого вам уже ничто не будет мешать пользоваться программой и скачивать то, что вам нужно в большом количестве и без никаких проблем.
3. макс • 05.09.2023
Такой вопрос: состояние DHT — запрещен, состояние Обмен пирами — запрещен, состояние Поиск локальных пиров — запрещен, что делать?
Dht ожидание входа как исправить
Репутация: 10
Помогите, не качает торрент
У меня мегафоновский беспроводной модем. Торрентом пользуюсь давно. Раньше проблем не было. А теперь вдруг перестал качать вообще что-либо; при чем одинаковая ситуация на всех трех торрент-клиентах. Бит-торрент пишет: «Ваш прослушиваемый порт заблокирован. Вы все равно можете скачивать, но скорость может быть не очень быстрой. Пожалуйста, проверьте настройки Firewall и NAT роутера.» (А у меня, кажется, нет ни того, ни другого. ) А внизу написано: «DHT: ожидание входа» или «DHT: 0 соединений» или «DHT: 1 соединение»; максимум «DHT: 2 соединения» — в то время как обычно там и до двухсот и дальше доходит.
А все остальные программы с инетом как работали, так и работают. Торрент же с этим модемом не работает на обоих компьютерах, никак не связанных друг с другом. Подскажите, пожалуйста, что тут можно сделать — если кто знает?
Звонил оператору, там сказали, что если браузер в инет выходит, значит проблема в программном обеспечении на компьютере. Но у меня на обоих компах одновременно эта проблема возникла! То есть дело точно в модеме. Но что делать, не знаю.
| 26.08.2011, 13:58 | |
| Helpmaster | |
Регистрация: 08.03.2016
Проблема с скачиванием с торрентов
я недавно подключил на мегафоне инет за 990 руб после подключение у меня ночью не хочет качаться торренты пишит dht ожидание входа что делать?
Дополнен 9 лет назад
Любой может ctrl+c ctrl+v скажи тогда где мне найти настройки что бы разрешал получение сетевых данных от незнакомых источников
Дополнен 9 лет назад
У тя какая опция интернета?
Лучший ответ
Как правило, ошибка «DHT ожидание входа» возникает из-за того, что ваше соединение с интернетом не настроено под данную торрент-программу, но есть и другие причины. Запрет форвардинга портов, например. С этим может столкнуться каждый, а суть проблемы заключается в запрете вашим провайдером принимать сетевые данные от других пользователей или ресурсов интернета.
На самом деле решение подобных проблем очень простое. Для решения проблем с форвардингом портов вам нужно зайти в настройки вашего провайдера и найти пункт, который бы разрешал получение сетевых данных от незнакомых источников. После этой несложной процедуры ошибка «DHT ожидание входа» больше не появится.


