DHT или Distributed hash table - ответы на вопросы

Страницы :   Пред.  1, 2, 3 ... 44, 45, 46
Ответить
 

Rinat8411

Стаж: 10 лет 3 месяца

Сообщений: 84


Rinat8411 · 01-Ноя-24 19:02 (27 дней назад, ред. 01-Ноя-24 19:02)

cheburnet писал(а):
86919383Я так понял, что это у вас какой-то дебаггер (отладчик), из оперативной памяти которого можно сохранять (патчить) исходный файл?
Это отладчик x64dbg
cheburnet
Переделал функцию что бы было проще редактировать адрес и порт (думал через settings.dat сделать, но там премудро сделан парсинг настроек...)

Теперь не надо далеко рыскать чтобы сменить адрес и порт
Найти можно тут
[Профиль]  [ЛС] 

Balling

Top Bonus 03* 1TB

Стаж: 11 лет

Сообщений: 310

Balling · 01-Ноя-24 22:28 (спустя 3 часа)

cheburnet
dht.libtorrent.org используется в Qbittorent. Так что там 225 полновесных нод найдется. Не факт, что это та же сеть Mainline DHT Kademlia.
Короче, 5 Августа сломалось vm5.transmissionbt.com. Зарепортили, ждем-с. Надеюсь либо зону DNS исправят, либо vm5 сервер.
[Профиль]  [ЛС] 

Hanabishi

Старожил

Стаж: 14 лет 7 месяцев

Сообщений: 2621

Hanabishi · 01-Ноя-24 22:36 (спустя 8 мин.)

Balling писал(а):
86919588Нет. https://github.com/arvidn создал dht.libtorrent.org и это его собственная DHT, вроде не связанная с mainline DHT. Хотя может всё же да https://github.com/Tribler/tribler/issues/5900#issuecomment-755340731
Balling писал(а):
86925338dht.libtorrent.org используется в Qbittorent. Так что там 225 полновесных нод найдется. Не факт, что это та же сеть Mainline DHT Kademlia.
Факт. Потому что сам Арвид и является одним из создателей спецификации mainline DHT.
https://www.bittorrent.org/beps/bep_0005.html
Цитата:
Author: Andrew Loewenstern <drue@bittorrent.com>, Arvid Norberg <arvid@bittorrent.com>
[Профиль]  [ЛС] 

cheburnet

Стаж: 8 лет 9 месяцев

Сообщений: 76

cheburnet · 02-Ноя-24 12:07 (спустя 13 часов, ред. 27-Ноя-24 06:55)

Передвинул сюда, чтобы не затерялось в анналах обсуждений
Восстановление DHT в клиентах uTorrent
(корректировка начальных DHT-адресов
в теле utorrent.exe)

Ситуация с DHT, благополучно разрешившаяся 20.10.2024, может повториться в любой момент.
Если по какой-либо причине не станет связи (проверяйте командами "ping" и "tracert") с входными развёртывающими DHT-узлами router.bittorrent.com:6881 (67.215.246.10:6881) и router.utorrent.com:6881 (82.221.103.244:6881), то, помимо способа с изменением файла "hosts"
( https://rutr.life/forum/viewtopic.php?p=86648403#86648403 ),
можно поменять DHT bootstrap адреса ПРЯМО В БИНАРНИКЕ utorrent.exe !
Не забывайте делать его резервные копии !
Файл utorrent.exe надо сначала распаковать UPXом (Ultimate Packer for eXecutables), так как код внутри экзешника дополнительно сжат этой программой.
Образец команды распаковки: "upx.exe -d C:\utorrent.exe".
Распаковка сохранится в тот же файл: "C:\utorrent.exe".
С распаковкой оригинальных версий uTorrent 3.2+ голый upx.exe не справляется. Необходим специализированный распаковщик или отладчик. См. также раздачу №5 из списка ниже (экзешники в ней уже распакованы).
Затем открыть utorrent.exe в hex- (или файловом) редакторе (например, WinHex), найти "router.bittorrent.com" и "router.utorrent.com" (они подряд идут) и заменить на любые желаемые адреса (или даже повторить один адрес дважды). Нужно не вставлять адреса, увеличивая при этом размер файла, а "затирать" ими имеющиеся символы (в WinHex это Ctrl+B). Остатки прежних адресов (если они были длиннее новых) надо заполнить шестнадцатеричными "00" (в WinHex: выделить кусок кода, затем нажать Ctrl+L).
Альтернативные общедоступные начальные DHT-адреса:
dht.transmissionbt.com:6881 (87.98.162.88:6881), dht.libtorrent.org:25401 (185.157.221.247:25401) и др.
Можно использовать и доменные имена и "цифровые" IP-адреса (я в своё время поменял на IP, с целью профилактики блокировок бутстреп-серверов по DNS).
Благодаря помощи Rinat8411 решена и проблема с номером порта начальных DHT-адресов (UDP/6881), если требуется его замена. Вместо "6881" можно поставить, например, "25401" - для dht.libtorrent.org (185.157.221.247). Для этого нужно найти (с помощью hex-редактора) в utorrent.exe, распакованном посредством UPX, шестнадцатеричную последовательность "E1 1A" (то есть байты 1A E1 (порт 6881) наоборот). И заменить её на шестнадцатеричную "39 63" (байты 63 39 (порт 25401) наоборот). Это для упомянутого dht.libtorrent.org, естественно.
Самый простой способ получить шестнадцатеричные значения из десятичных (для номера порта и не только) - воспользоваться штатным "Калькулятором" Windows в расширенном (научном, инженерном) режиме, переключаясь между "Hex" и "Dec" системами счисления.
В utorrent.exe версий 2.0.4 и 2.2.1 последовательность "E1 1A" встречается по одному разу (далеко от "router.bittorrent.com" и "router.utorrent.com").
В версиях "трёшки" последовательность "E1 1A" встречается более двух раз, но менять можно только первую из них, то есть всё как у "двушек".
Зато в версии 1.8.2 build 15357 для каждого из двух адресов в коде, оказывается, предусмотрен отдельный указатель порта (последовательность "E1 1A" встречается по два раза)! То есть в их код можно вставить по два разных адреса с разными портами! Проверено!
Например, 87.98.162.88:6881 + 185.157.221.247:25401
Обратно UPXом экзешник можно не запаковывать - всё и так работает.
Кстати, рекомендую пропатченные версии uTorrent
(имеется в виду не по данной проблеме, а вообще;
их я ещё дополнительно "бутстрепил" сам):
1) uTorrent 1.8.2 build 15357:
https://rutr.life/forum/viewtopic.php?t=3712426
2) uTorrent 2.0.4 build 22967:
https://rutr.life/forum/viewtopic.php?t=3978860
3) uTorrent 2.2.1 build 25534:
https://rutr.life/forum/viewtopic.php?t=4378847
4) uTorrent 3.2.3 build 28705:
https://rutr.life/forum/viewtopic.php?t=4338936
5) uTorrent 3.5.5 build 46552:
https://rutr.life/forum/viewtopic.php?t=5181383
utorrent.exe из первой раздачи распаковывается UPXом без проблем, экзешники из пятой вообще не запакованы повторно (что правильно!).
А вот для распаковки пропатченных и затем снова упакованных (зачем-то) utorrent.exe из второй, третьей и четвёртой раздач, необходим один из специализированных распаковщиков, типа "PEiD.exe" (с плагином "PEiD Generic Unpacker" (состоящим из файлов ZDRx.dll + GenOEP.dll + ImpREC.dll)) из комплекта "PE tools". Голый upx.exe не справляется. Так что если не хотите искать подходящие распаковщики - то в случае "двушек" берите оригинальные версии, а если нужны "трёшки" - качайте патченные из пятой раздачи (их там целых тринадцать версий).
В общем-то восстановление DHT - это просто для удобства (если стартует пустой клиент). Когда в клиенте много популярных раздач, всё и так моментом подхватывается. Единственное - иногда приходится перестартовывать клиент раз пять-десять, чтобы началось нахождение пиров (но это уже издержки современного интернета с его нестабильностью и перегрузками - несколько лет назад я такого не наблюдал).
Версии uTorrent 3.x.x Рутрекер не особо рекомендует. Да и я тоже. Лучше пользуйтесь старенькими (тем более, что всё это актуально уже только для Windows XP и Windows 7).
===============================
Zimagor писал(а):
86693991Ради интереса, через HEX едитор, пытаюсь прописать в utorrent.exe, адреса:
34.229.89.117 router.utorrent.com
87.98.162.88 router.bittorrent.com
Файл, с помощью UPX, предварительно распакован.
Но после сохранения, экзешник становится нерабочим, и при его запуске, выскакивает: "Ошибка при запуске приложения (0xc0000005)"
Правильно ли я прописываю? Вот скрин, что у меня получается:
скрытый текст
У меня так (относительно вашей картинки):
@87.98.162.88............212.129.33.59.......d
, где жирные точки (12 и 7 штук) - это символы с шестнадцатеричным значением "00" (как заполнить позиции в файле шестнадцатеричными значениями - см. справку к вашему hex-редактору), а "d" - из d.h.t. Всего 46 символов. Вы, очевидно, увеличили размер файла. Размер исполняемого файла всегда должен оставаться тем же, что был (то есть надо не вставлять символы, а записывать поверх существующих). Если новый IP-адрес короче предыдущего - оставшиеся от старого адреса последние символы надо заполнить шестнадцатеричными "00".
Адрес 212.129.33.59 - это дублёр 87.98.162.88,
так как:
Код:

nslookup dht.transmissionbt.com
Non-authoritative answer:
Name:    dht.transmissionbt.com
Addresses:  212.129.33.59, 87.98.162.88
Но 212.129.33.59 периодически не работает...
Поэтому можно использовать комбинацию с участием только 87.98.162.88:
@87.98.162.88............87.98.162.88........d
, где жирных точек 12 и 8 штук - это символы с шестнадцатеричным значением "00".
Всего 46 символов.
На скриншоте - очевидно, один из билдов uTorrent 2.2.1. Мой комментарий в точности подходит к версиям 2.0.4 и 2.2.1, а к версиям 1.8.2 и "трёшкам" - с небольшими нюансами (в них будет слегка отличаться окружение и общее количество символов).
===============================
Состояние DHT в статус-баре в первые секунды после старта "чистого" клиента uTorrent 2.0.4 build 22967 (без закачек, без "dht.dat" и "dht.dat.old") имеет следующий вид, в зависимости от используемого публичного бутстреп-сервера:
"DHT: Waiting to log in" - бутстреп-сервер "отвечает" только по ICMP, но не по UDP/6881 (router.bittorrent.com (67.215.246.10)*, dht.libtorrent.org (185.157.221.247)** и bootstrap.jami.net (79.137.71.93, 149.202.80.32)).
"DHT: 0 nodes (Login)" - бутстреп-сервер не отвечает даже по ICMP (router.utorrent.com (82.221.103.244), dht.aelitis.com (34.229.89.117) = dht.vuze.com (34.229.89.117) и router.bitcomet.com (non-existent domain)).
"DHT: 1 nodes (Login)" - ответ от бутстреп-сервера пришёл и по ICMP и по UDP/6881 (и даже в случае, если на первый раз зависло на "1 nodes", можно пару раз перезапустить клиент - и оно пойдёт!) (dht.transmissionbt.com (87.98.162.88, 212.129.33.59 - по UDP/6881 отвечает ТОЛЬКО ПЕРВЫЙ из двух IP, а второй - нет; поэтому я рекомендую указывать именно IP, а не доменное имя)).
* В периоды сбоев.
С 20.10.2024 проблем ПОКА не наблюдается (попадает в категорию "DHT: 1 nodes").
** Это с неправильным портом в коде (который по умолчанию "6881"). С исправленным на "25401" - отлично работает (попадает в категорию "DHT: 1 nodes").

===============================
Ещё небольшой эксперимент
Проснифил процесс старта клиента uTorrent 2.0.4 build 22967 без закачек (до момента, когда новые DHT-узлы уже перестают появляться в статус-баре), далее в окне сниффера отсортировал записи по порту, с которого приходят ответы от удалённых узлов; затем отобрал штук десять с UDP-портом №6881 (то есть, у которых именно этот порт гарантированно активен), и у которых одновременно с этим была передача пакетов в мою сторону. И все эти десять штук адресов (пробил по IP - юзеры из разных стран) поочерёдно вставлял в utorrent.exe вместо публичных бутстреп-серверов (способом, описанным выше), сохранял и запускал uTorrent в "чистом" виде. Комп тоже на всякий случай перезагружал, файлы "dht.dat" и "dht.dat.old" каждый раз удалял.
Так вот, все десять вариантов дали положительный результат (около 250 DHT-узлов в статус-баре)!
Теперь можно набрать резервный список таких IP, и в случае "судного дня" (отказа или блокировки имеющихся бутстреп-серверов) использовать какой-то из этого списка, пока не будут подняты новые публичные бутстреп-сервера. Понятно, что со временем частные компы будут выключаться, и эти узлы "отвалятся", но можно периодически проверять список через длительные интервалы времени (допустим, раз в месяц). Если составить большой список, то какие-то из его IP могут принадлежать и постоянно работающим серверам, и это будет видно в процессе длительных наблюдений.
Мониторю список из 100 узлов с портом UDP/6881
Спустя две недели - четверть сохранённых мной узлов по-прежнему активны!
Часть из них напоминают арендованные VPS.
Спустя почти месяц - четверть сохранённых мной узлов по-прежнему активны!
Почти все они - арендованные VPS (Амазон, Гугл, Хетцнер).
Спустя полтора месяца - четверть сохранённых мной узлов по-прежнему активны!
Все они - арендованные VPS (Амазон - 15 шт., Хетцнер, Оракл и др.).
===============================
На какие UDP-порты из сниффера обратил внимание
("чистый" старт DHT, в общей сложности порядка 600 IP):
6881 - 99 шт. - совершенно разные страны, независимо от начального DHT-сервера из кода uTorrent
6882 - 6 шт. - Франция, США, Ирландия
6889 - 5 шт. - Тайвань, Италия, Германия, Япония
6992 - 3 шт. - США, Ирландия
10240 - 4 шт. - ЕС, США, Румыния, Норвегия
15000 - 7 шт. - разные города Китая и Тайвань
22222 - 1 шт. - Португалия (просто "красивый" номер порта)
25401 - 1 шт. - dht.libtorrent.org (если, конечно, его вставить в код uTorrent) - как ни странно, единственный с таким номером порта
32000 - 3 шт. - Россия
49001 - 9 шт. - Россия (6 шт.), Азербайджан, Болгария, Франция
50321 - 3 шт. - США и Гонконг
51413 - 13 шт. - совершенно разные страны
55555 - 1 шт. - Россия (просто "красивый" номер порта)
Остальные номера портов - в основном уникальные (по 1-2 записи в сниффере).
Ещё обратил внимание, что 67.215.246.10:6881 (после того, как его починили) отрабатывает старт DHT надёжнее (всегда с первого раза), чем 87.98.162.88:6881 или 185.157.221.247:25401 (с ними иногда приходится рестартнуть клиент).
[Профиль]  [ЛС] 

Balling

Top Bonus 03* 1TB

Стаж: 11 лет

Сообщений: 310

Balling · 08-Ноя-24 01:02 (спустя 5 дней)

cheburnet
router.bittorrent.com починили вчера:
скрытый текст
echo -n $'d1:ad2:id20:\x23\x71\x0c\x1c\xb4\x50\x7d\x87\x29\xb8\x3f\x87\x2c\xc6\xa2\xa4\x4c\x39\x73\x67e1:q4:ping1:t1:01:y1:qe' | nc -u router.bittorrent.com 6881
[Профиль]  [ЛС] 

Hanabishi

Старожил

Стаж: 14 лет 7 месяцев

Сообщений: 2621

Hanabishi · 08-Ноя-24 01:11 (спустя 8 мин., ред. 08-Ноя-24 01:13)

Balling писал(а):
86954732router.bittorrent.com починили вчера:
Его починили еще недели 2 назад. https://rutr.life/forum/viewtopic.php?p=86866888#86866888
Странно что в этой теме никто об этом не написал.
[Профиль]  [ЛС] 

Papant

Admin

Стаж: 17 лет 2 месяца

Сообщений: 56186

Papant · 08-Ноя-24 10:24 (спустя 9 часов)

Hanabishi
Ага, подправил спойлер в шапке.
[Профиль]  [ЛС] 

Balling

Top Bonus 03* 1TB

Стаж: 11 лет

Сообщений: 310

Balling · 11-Ноя-24 06:34 (спустя 2 дня 20 часов)

Hanabishi
router.silotis.us:6881 => DEAD
Ничего он не dead. Он только ipv6, там нет ipv4 записи.
[Профиль]  [ЛС] 

Hanabishi

Старожил

Стаж: 14 лет 7 месяцев

Сообщений: 2621

Hanabishi · 11-Ноя-24 14:26 (спустя 7 часов)

Balling писал(а):
86969742Ничего он не dead. Он только ipv6, там нет ipv4 записи.
Я в курсе. Но у меня нет IPv6.
[Профиль]  [ЛС] 

dimnit

Стаж: 14 лет 1 месяц

Сообщений: 15

dimnit · 20-Ноя-24 16:47 (спустя 9 дней, ред. 21-Ноя-24 08:13)

QBittorrent 4.3.9 показывает 0 узлов DHT. Поставил Tixati 3.29 показывает как обычно около 300. Начальный узел DHT у QB сломался? Как починить?
UPD: Проблема в прокси для торрентов.
[Профиль]  [ЛС] 

Papant

Admin

Стаж: 17 лет 2 месяца

Сообщений: 56186

Papant · 20-Ноя-24 18:14 (спустя 1 час 26 мин.)

dimnit писал(а):
87012109QBittorrent 4.3.9 показывает 0 узлов DHT.
А в нём есть активные торренты с рабочими анонсерами? Щас запустил 4-ю и 5-ю версии - похоже к DHT они подключились только после получения списка пиров от трекера. Напоминает недавнюю ситуацию с мюторрентом.
[Профиль]  [ЛС] 

stаlkerok

Стаж: 1 год 9 месяцев

Сообщений: 1861

stаlkerok · 20-Ноя-24 18:22 (спустя 8 мин.)

Papant, никаких проблем, ни со старой версий, ни с новой. Там же в начальных узлов несколько, это явно локальные проблемы.
[Профиль]  [ЛС] 

Hanabishi

Старожил

Стаж: 14 лет 7 месяцев

Сообщений: 2621

Hanabishi · 20-Ноя-24 18:24 (спустя 2 мин.)

dimnit писал(а):
87012109Начальный узел DHT у QB сломался? Как починить?
Нет, все прекрасно работает. Проверяйте, не включен ли прокси в настройках.
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error