Скорая Компьютерная Помощь г. Калуга

Полный спектр компьютерных услуг!

Здравствуйте, гость ( Вход | Регистрация )

> Внимание!

  • Вся информация, расположенная в данном и других разделах форума получена из открытых источников (интернет-ресурсы, средства массовой информации, печатные издания и т.п.) и/или добавлена самими пользователями. Администрация форума предоставляет его участникам площадку для общения / размещения файлов / статей и т.п. и не несет ответственности за содержание сообщений, а также за возможное нарушение авторских, смежных и каких-либо иных прав, которое может повлечь за собой информация, содержащаяся в сообщениях.
Ремонт компьютеров в калуге Рекламное место сдается
 
Ответить в эту темуОткрыть новую тему
> Свободу DHT ;) Или патчим uTorrent под свои нужды ...
Decker
сообщение 29.3.2012, 23:55
Сообщение #1


Администратор
*****

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1



uTorrent. DHT-патч

Сегодня я расскажу вам о том как сделать DHT патч для uTorrent любой версии своими руками. Сначала о том что это такое и для чего это нужно.

© http://ru.wikibooks.org/wiki/Bittorrent/DHT

DHT (англ. Distributed hash table распределенная хэш-таблица)— это протокол, позволяющий битторрент-клиентам находить друг друга без использования трекера. Клиенты с поддержкой DHT образуют общую DHT-сеть и помогают друг другу найти участников одних и тех же раздач.
Поддержка DHT есть в клиентах Mainline, µTorrent, KTorrent, Deluge, BitSpirit, Transmission и BitComet. В Azureus есть собственная реализация DHT, то есть клиенты Azureus образуют свою собственную отдельную DHT-сеть, а с помощью плагина mainlineDHT присоединяются к стандартной сети DHT, участвуя одновременно в обеих сетях.

PEX (Peer exchange) — это расширение протокола для обмена списками участников.
PEX реализуется как дополнительные сообщения между клиентами, уже соединёнными между собой для обмена сегментами файла по обычному протоколу BitTorrent.
В отличие от трекера и DHT, PEX может быть только вспомогательным средством получения пиров, так как он не может помочь подключиться к раздаче новым пирам.
PEX есть в клиентах Transmission, Azureus, BitComet, KTorrent, µTorrent и BitTornado, причем в каждом клиенте он реализован по-своему, поэтому PEX между собой могут пользоваться только одинаковые клиенты. Начиная с 3 версии Azureus (Vuze) может обмениваться PEX с uTorrent и BitTorrent.

Функции

И DHT и PEX фактически выполняют основную функцию трекера — помогают участникам файлообмена узнать друг о друге. Они могут:

1. Помочь участникам быстрее друг друга найти

Например, на раздаче есть пир X с недоступным портом. К раздаче подключается пир Z, который сам начать соединение к X не может, и вынужден ждать, пока Х о нём узнает сам. Х только что обращался к трекеру, и в следующий раз собирается это сделать через час. Но вот пир Y в очередной раз обращается к трекеру и узнаёт про нового пира Z. При этом Y сам давно уже соединен и занимается файлообменом с X, поэтому он через PEX сообщает X адрес этого нового пира. Теперь X может начать соединение к Z.

2. Снизить нагрузку на трекер

Некоторые клиенты, например Azureus, получая адреса пиров через DHT или PEX, реже обращаются за списком пиров на трекер.

3. Поддержать участников вместе в периоды недоступности трекера

Известно, что если трекер является единственным источником информации о пирах, то при его неработоспособности раздача постепенно останавливается. Клиенты помнят уже известные списки адресов других пиров, но постепенно эти списки устаревают — некоторые пользователи отключаются от раздачи, у некоторых меняется IP адрес, а новые пользователи не могут подключиться к раздаче вообще. PEX позволяет несколько замедлить процесс распадения роя участников, а DHT позволяет полностью заменить трекер, то есть даже подключаться к раздаче новым участникам.

4. DHT позволяет раздавать вообще без трекера

Такая раздача называется trackerless. Торрент для нее создается без адреса трекера, и клиенты друг друга находят через DHT сеть. При участии в trackerless раздачах БТ клиенты приобретают определённое сходство с eMule, использующим сеть KAD.

Механизм работы DHT

Реализация распределеной сети в БТ клиентах основана на варианте DHT, называемом Kademlia. А вообще говоря, DHT (Distributed hash table) означает децентрализованную распределенную систему для объединения большого количества постоянно исчезающих и появляющихся узлов и эффективной передачи сообщений между ними. На основе DHT структур строят разные более сложные системы, такие как P2P файлообмен, кооперативное веб кеширование, DNS сервисы и т. п.

DHT использует UDP протокол. БТ клиенты слушают тот же UDP номер порта, который они используют для входящих TCP соединений. Если вы активно используете DHT, то открытие этого UDP порта для доступа снаружи желательнo, но не обязательно — DHT будет работать и так.

Каждый подключенный БТ клиент является в DHT сети отдельным узлом. У него есть свой уникальный ID (идентификатор), случайно выбираемый из того же 160-битного пространства, что и infohash’ы торрентов.

Каждый узел хранит таблицу маршрутизации, содержащую контактную информацию о многих «ближайших» к нему узлах, и о нескольких более далеких. «Близость» двух узлов вычисляется из «сходства» их ID, и не имеет никакого отношения к их географической близости.

Когда узел хочет найти пиров для какой-то раздачи, он сравнивает infohash этой раздачи с ID известных ему узлов, и затем посылает запрос тому узлу, чей ID наиболее похож на этот infohash. Тот узел возвращает ему адрес узла, чей ID ещё ближе к infohash торрента.

Тогда наш узел посылает запрос тому новому узлу, и получает от него адрес следующего узла, чей ID ещё более похож на infohash торрента.

Таким образом, запросы от клиентов, участвующих в раздаче торрента с определённым infohash, постепенно стекаются к узлам, чьи ID наиболее похожи на этот infohash. Эти узлы помнят предыдущие запросы, и всем следующим запрашивающим узлам вернут адреса предыдущих пиров с той же раздачи.

Private key

На публичных (открытых) трекерах, где каждый желающий может скачать торрент и участвовать в раздаче, DHT и PEX служат на благо всех участников. Частным (закрытым) трекерам в первую очередь важно, чтобы в раздачах могли участвовать только зарегистрированные пользователи, и чтобы они соблюдали определённые правила. При первом обращении клиента частный трекер имеет возможность не допустить его к раздаче, просто не сообщая ему адреса других клиентов-участников. Поэтому для закрытого трекера важно, чтобы клиенты не получали эти адреса через DHT/PEX. DHT и PEX появились в клиентах Azureus и BitComet примерно летом 2005 года. Администраторы многих частных трекеров были недовольны такой новой функциональностью, и поэтому стали запрещать на трекере эти новые версии клиентов.

Тогда разработчики клиентов предложили новый ключ внутри торрент файла: private. Если он равен 1, то клиент обязан для этого торрента автоматически отключать DHT/PEX независимо от желания пользователя. Такой торрент называют Secure Torrent.

Практически все современные частные трекеры сами принудительно вставляют private:1 во все торренты, выкладываемые на трекере, а также запрещают несколько устаревших версий клиентов, поддерживающих DHT или PEX, но еще не знающих про private key. Пользователи трекера просто не могут на раздачах использовать DHT/PEX, и проблемы нет.

Отметим, что присутствие private key изменяет infohash торрента, поэтому выреза́ть его из торрент файла бесполезно — другие клиенты изменённый торрент всё равно не признают.

Пользоваться ли?

  • Все ваши торренты — с частных трекеров
    Если при этом в клиенте разрешить DHT, то получится, что клиент подключается к DHT сети, тратит на это трафик, помогает другим клиентам найти нужных им пиров, но ни на одной раздаче DHT для себя не использует. Если вы не хотите тратить лишний трафик, то видимо лучше DHT в клиенте отключить.
  • Вы качаете раздачу с публичного трекера
    Если трекер возвращает вам много пиров и их достаточно для достижения хорошей скорости скачивания, то DHT/PEX вам вероятно не нужно. Если нет, то стоит попробовать их включить (и в клиенте и в свойствах раздачи), это может помочь найти больше источников.
  • Вы качаете раздачу с частного трекера без принудительного private key
    Из крупных русскоязычных трекеров на конец 2006 года это торрентс.ру. Возможность использования на раздачах DHT/PEX на этих трекерах отдана на откуп раздающему (создателю торрента).

Вообще говоря, такая ситуация не может быть признана нормальной, особенно на трекерах с системой passkey. Дело в том, что в клиентах BitComet, BitSpirit и Azureus через DHT пользователи могут узнать passkey других пользователей, и нечестные пользователи могут использовать чужие passkey для скачивания под чужой учетной записью. Поэтому по крайней мере в этих клиентах на таких трекерах рекомендуется DHT выключить.

DHT и статистика

Этот раздел касается только частных трекеров, на которых private key в торренты принудительно не вставляется, и на некоторых раздачах (в зависимости от того, вставил ли раздающий сам в торрент private key) можно использовать DHT и PEX.

Часто встречается мнение, что включенный в клиенте DHT влияет на учет статистики клиента трекером, например «раздавал через DHT, значит статистика шла мимо трекера». Это неверно.

Во-первых, DHT/PEX используется только для получения адресов пиров. Ни файлообмена, ни какого-либо учета статистики по ним не ведётся. Клиент рапортует статистику скачанного и отданного только на трекер.

То есть «раздавал через DHT» фактически означает «о некоторых (или о всех) пирах получил информацию по DHT, и вероятно некоторые пиры тоже нашли меня через DHT»

Во-вторых, хотя клиенты обычно и знают, откуда ими получены адреса пиров, ни один клиент не разделяет трафик на «полученный/отданный DHT пирам» и «полученный/отданный пирам, полученным от трекера». Даже при желании это было бы клиенту сделать затруднительно — некоторые пиры могут быть получены и от трекера и через DHT или PEX, и часто клиент не знает, как его адрес получил пир, сам начинающий к нему соединение.

Клиент рапортует трекеру суммарные данные об объемах им скачанного и отданного всем пирам, с которыми он общался, независимо от того, узнал клиент об отдельных пирах через трекер, DHT или PEX, или тот пир вообще начал соединение сам. То есть даже если из-за DHT/PEX на раздаче появятся «левые» пользователи (не обращающиеся к трекеру), клиент все равно сообщит на трекер все, что у них скачал и отдал.

Правильный учет статистики зависит только от состояния трекера: работает трекер — статистика учитывается, не работает — не учитывается. Только в случае длительно неработающего трекера DHT/PEX может играть косвенную роль, не давая постепенно затухнуть файлообмену на такой «раздаче без учета статистики».

DHT-сеть в BitTorrent-клиентах использует протокол UDP.

Так вот ... если вы теоретически просветились ... в этой статье я расскажу о том, как сделать так, чтобы ваш торрент клиент игнорировал установленный в торренте private флаг (!)

Что нам понадобится?
  1. Установить последнюю версию uTorrent.
  2. Скачать UPX для распаковки клиента.
  3. Найти Hacker's View или любой другой Hex-редактор с возможностью дизассемблирования на лету ... хотя я бы рекомендовал воспользоваться именно HIEW.


Ну собственно займемся ... перво-наперво надо распаковать установленный uTorrent (upx.exe должен уже находиться в папке с установленным uTorrent, обычно это "C:\Program Files\uTorrent\") ... запускаем консоль, переходим в папку uTorrent и распаковываем его:
Прикрепленное изображение

Открываем uTorrent.exe в Hiew, переключаемся в Hex-режим (Enter) и находим (F7) строку "private" ...
Прикрепленное изображение

Далее нажимаем в найденном месте (F6) - DatRef (Data References), чтобы найти места в коде, которые ссылаются на эту строку. После того как вы нажали F6 первый раз - HIEW находит место и автоматически переключается в режим дизассемблирования. Для того чтобы найти следующую ссылку (следующее вхождение) необходимо нажать Shift+F7. Ищем вхождение которое выглядит вот так:
Прикрепленное изображение

Т.е. сверху вхождение "piece length", а снизу "name.utf-8" ... Нас интересует вот это место в коде:
Код
.0041205F: 56                             push        esi                      
.00412060: 6898314F00                     push        0004F3198;'private' -- 5
.00412065: 8BCF                           mov         ecx,edi                  
.00412067: 898374010000                   mov         [ebx][000000174],eax    
.0041206D: E88540FFFF                     call       .0004060F7 -- 3          
.00412072: 85C0                           test        eax,eax                  
.00412074: 7407                           jz         .00041207D -- 6

Упрощенно, если флаг private равен нулю, то осуществляется переход на адрес .00041207D ... Команда test eax, eax - это проверка условия, а jz - условный переход, в случае если условие выполняется. Так вот нам нужно чтобы этот переход осуществлялся всегда. Т.е. чтобы uTorrent всегда думал что флаг private на раздаче установлен в 0 ... нет ничего проще, достаточно заменить условный переход на безусловный, т.е. jz на jmp или байт 74 на EB, так, как показано на картинке:
Прикрепленное изображение

Сохраняем изменения и выходим из HIEW. Упаковывать клиент обратно - необязательно. Всё, теперь мы можем качать раздачи с установленным флагом Private используя пиров полученных через DHT/PEX. Чем это может быть полезно нам? Заходим на свой любимый популярный трекер, скачиваем торрент, добавляем его в uTorrent. После того как клиент нашел сидов, ставим закачку на паузу, открываем в uTorrent список трекеров для данного торрента и удаляем оттуда все URL трекеров. Теперь закачка пойдет только за счет DHT, даже несмотря на то что у торрента установлен флаг private, а т.к. закачка идет через распределенную сеть, т.е. фактически у торрента нет трекеров, то информацию о количестве скачанного / отданного на трекер отправляться не будет, а следовательно наш рейтинг никак не изменится wink.gif Это один плюс ... другой плюс заключается в том, что если вам нужно скачать что-то с "закрытого трекера", а вы на нем незарегистрированы - то вам достаточно будет найти .torrent файл с этого трекера, список пиров клиент получит через DHT.


--------------------

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
EvilClown
сообщение 8.4.2012, 21:45
Сообщение #2


Newbie
*

Группа: Пользователи
Сообщений: 6
Регистрация: 28.3.2009
Из: 29405000000
Пользователь №: 159



Как на счет этого? Параметр isp.peer_policy_url - использование списка приоритетных IP адресов ( увеличение скорости загрузки )

Вот нашел в этой теме http://dl.dropbox.com/u/67730860/domolink.xml  Нам подходит?


--------------------
Темное живет даже в лучших из нас,
В худших из нас - оно не живет, а правит...
Д.Кунц
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Decker
сообщение 14.4.2012, 14:17
Сообщение #3


Администратор
*****

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1



Увеличение скорости загрузки и отдачи в utorrent и Bittorent

Параметр isp.peer_policy_url - использование списка приоритетных IP адресов ( увеличение скорости загрузки ).

Всё что ниже будет написано в обязательном порядке прочитать и сделать всем :
1. Кто подключён к интернету через Ethernet ( локальная сеть )
2. Скорость закачки/раздачи иногда случается гораздо выше чем обычно ( в том числе и ADSL )
3. Если у вас не анлим , но внутренний трафик тарифицируется по другой цене или бесплатен .

Новая настройка в utorrent 3.x и новых Bittorrent isp.peer_policy_url.
Эта опция позволяет обращаться к списку IP адресов к которым utorrent будет пытаться подключиться в первую очередь. В пустое поле isp.peer_policy_url вставляется ссылка на xml файл внутри которого записаны диапазоны IP адресов вашего провайдера и его пиринговой зоны.

Прикрепленное изображение


Подходит wink.gif Наконец-то приоритеты сделали ... только для калужского филиала Домолинк правильный список диапазонов выглядит следующим образом:
Код
<iprange start="62.148.128.1" end="62.148.159.254" weight="10"/>
<iprange start="212.106.32.1" end="212.106.63.254" weight="10"/>
<iprange start="94.242.128.1" end="94.242.191.254" weight="10"/>
<iprange start="109.225.0.1" end="109.225.63.254" weight="10"/>
<iprange start="31.172.192.1" end="31.172.223.254" weight="10"/>

Ссылка на файл с учетом этих изменений:
  • http://compkaluga.ru/downloads/domolink.xml - файл со всеми филиалы Домолинк. За счет того что между некоторыми из филиалов, например, между Калугой и Тулой - скорость равняется тарифной умноженной на 2 (или 1.5, я уже не помню) можно получить некоторое увеличение скорости закачки.
  • http://compkaluga.ru/downloads/domolink_kaluga.xml - файл только с калужским филиалом. Т.е. приоритет будет отдаваться калужским пирам, скорость с которых не зависит от вашего тарифного плана.


p.s. Для тех кто ничего не понял, еще раз ... скорость скачивания с пиров, принадлежащих диапазону IP адресов калужского филиала не лимитируется, т.е. если у вас тариф 1 Mbit, то скорость закачки с любых ресурсов будет согласно вашего ТП, однако, если вы качаете что-то с ресурса (пира) из калужского региона Домолинк, то скорость скачивания с таких ресурсов (IP) не лимитируется и ограничивается лишь физической пропускной способностью линии. Логично, чтобы при закачке торрентов приоритет отдавался пирам из вашего региона, т.к. с них качать быстрее. Теперь такая возможность есть и достигается она за счет использования параметра isp.peer_policy_url в настройках uTorrent.

p.p.s. Тема обсуждения на домолинковском форуме - http://www.domolink.ru/forum/showthread.php?p=395203


--------------------

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
A_Max
сообщение 14.4.2012, 16:14
Сообщение #4


Newbie
*

Группа: Пользователи
Сообщений: 7
Регистрация: 2.9.2010
Пользователь №: 680



Прикольненько!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Decker
сообщение 5.7.2012, 6:19
Сообщение #5


Администратор
*****

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1



uTorrent 3.2 with DHT patch

Эта версия uTorrent будет игнорировать "private" флаг на любых новых открываемых торрентах. Это позволит использовать DHT и Peer Exchange на любой раздаче. "Private" торренты в списке закачек необходимо удалить и добавить заново для разблокирования. Скаченные данные останутся нетронутыми.
Примечание: Если вы запустите нормальный uTorrent после модифицированного, он снова заблокирует все "private" торренты. Нужно будет удалить и заново добавить их в свой список.

Начиная с версии 3.2 uTorrent не распаковывается штатно UPX'ом, поэтому выкладываю уже распакованную и пропатченную (DHT Patch) 3.2 версию клиента:

Прикрепленный файл  uTorrent_32_DHT_Patched.7z ( 834,27 килобайт ) Кол-во скачиваний: 4695

p.s. Автоматизированное средство для распаковки "нестандартного" UPX - тут, либо Прикрепленный файл  UpxUnpacker_v0.2.rar ( 82,37 килобайт ) Кол-во скачиваний: 761
, автоматический патчер распакованного uTorrent.exe для версий uTorrent > 3.1 - Прикрепленный файл  utorrent31_DHT_patch.7z ( 44,37 килобайт ) Кол-во скачиваний: 8229
.


--------------------

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kdolinov
сообщение 27.9.2014, 17:32
Сообщение #6


Newbie
*

Группа: Пользователи
Сообщений: 1
Регистрация: 27.9.2014
Пользователь №: 1970



Вот бы так пропатчить ACEStream, было бы шикарно.

Поясню:

До версии 2.2.7 DHT по умолчанию был включен, подозреваю что и "поиск локальных пиров" и прочие службы позволяющие находить пиров в обход треккера работали. В более поздних версиях всё отключено, опять таки по умолчанию. Принудительно включить DHT и прочие службы в ACEStream возможности нет. Раньше можно было скачать любой торрент-файл с видео контентом. Затем на ресурсе http://torrenteditor.com/ обработать его (убрать свой паскей и добавить ретреккеры). И спойно запускать уже обработанный этот торрент-файл "Ace Player"-ом. Ace Player тут же находил массу пиров и начинал воспроизведение через несколько секунд (зависит от количества пиров). Теперь же в обход треккера смотреть возможности нет. Можно конечно использовать MediaGet, но Ace Player всё же удобнее.
Если кто то займётся данной проблемой было бы супер. ну или хотя бы подскажет где почитать про решение этой проблемы.

Заранее спасибо заинтересовавшимся людям.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Рекламное место сдается Рекламное место сдается
Текстовая версия Сейчас: 29.3.2024, 4:17
Рейтинг@Mail.ru
Яндекс.Метрика Яндекс цитирования