В прошлой статье, я рассказал, как пропатчить торрент клиент так, что бы можно было забыть о рейтинге. Это всё, конечно хорошо, но, оказалось, что есть ещё 1 вещь, которую нужно обходить. Это запрещение DHT и Peer Exchange(обмен пирами). Запрещение происходит во время создания торрент файла, либо самим трекером, что бы все пиры шли через него. А если трекер упадёт или закроется? Да, есть альтернативные, типа openbittorrent.com, но, по умолчанию, их никто не вписывает в список трекеров, а неискушенных пользователей это вообще мало интересует, им главное скачать, что, в случае запрещения DHT становиться невозможно.
.
Но, это можно обойти простейшим патчем.
Работать будем с той-же версией uTorrent, клиент должен быть распакован из UPX(см прошлую статью).
За источник информаци я взял описание пропатченного на DHT клиента из ThePirateBay, конкретно, нас интересуют строки
mov ecx, edi
mov [ebx+4], eax
call sub_401CC6
test eax, eax
jz short loc_404D70 -> jmp short loc_404D70
74 04 80 4B 34 02 -> EB 04 80 4B 34 02
Для справки: байт 74 означает команду jz(je), а EB - jmp.
.
Правда, в нашем клиенте это выглядит немного по другому. А именно:

004087F3 |. 68 741D4600 PUSH uTorrent.00461D74 ; ASCII "privat1"
004087F8 |. 8BCE MOV ECX,ESI
004087FA |. 8943 08 MOV DWORD PTR DS:[EBX+8],EAX
004087FD |. E8 D594FFFF CALL uTorrent.00401CD7
00408802 |. 85C0 TEST EAX,EAX
00408804 |. 74 04 JE SHORT uTorrent.0040880A
Правда, мой вариант скопирован из OllyDbg, а там, судя по всему, из IDA Pro, но суть не меняется, разве что, в новой версии байты получились "85 C0 74 04 80 4B 41 02". А то, что мы нашли нужное место в коде, нам намекает стринг "privat1". Теперь, заменяем команду je(переход с условием) на jmp(безусловный переход):

И видим, что изменился только 1 байт. 74->EB. Теперь, достаточно любым hex редактором найти комбинацию байт "74 04 80 4B 41 02" и заменить её на "EB 04 80 4B 41 02" и сохранить файл.
Вот и всё, теперь, достаточно удалить все закачки с запрещённым DHT/Peer Exchange и добавить их снова - теперь, всё работает.
.
Скачать uTorrent клиент без учёта рейтинга и с DHT патчем.
.
Обновление!
Обновил uTorrent. Теперь версия 2.0.
Изменения минимальны, только тут немного другой набор байт: "74 04 80 4B 42 02" на "EB 04 80 4B 42 02".
Скачать uTorrent 2.0 клиент без учёта рейтинга и с DHT патчем.
.
PS. Статья по теме, про включение DHT в клиенте и прочего: перейти
Обновление!
Решил собрать все наборы байт из комментариев и ответить на вопросы.
И так:
BitTorrent 6.4b
74 04 80 4B 41 02 => EB 04 80 4B 41 02
µTorrent 2.0.1 RC1 (build 18833)
74 04 80 4B 46 02 => EB 04 80 4B 46 02
µTorrent 2.0.3.build 20664
85 C0 74 04 80 4B 46 02 => 85 C0 EB 04 80 4B 46 02
µTorrent 2.2.0.21738
85 C0 74 04 80 4B 46 02 => 85 C0 EB 04 80 4B 46 02
µTorrent 2.2 22007
85 С0 74 04 80 4B 41 02 => 85 С0 EB 04 80 4B 41 02
.
А теперь, небольшой FAQ:
.
Q: Будут ли ещё патчи?
A: скорее всего нет. Я перешел на linux, поэтому, µTorrent мне теперь не нужен, к тому же, тут почти всё open-source, поэтому патчить всё намного легче. Вот, например, патч libtorrent.
.
Q: И что же делать?
A: Тут в комментариях регулярно пишут наборы байт и прочие штуки, которые могут вам помочь. А лучше - самому ещё раз перечитать пост и разобраться что да как.
.
Q: Айайа! Меня забанили на трекере из-за твоего клиента!
A: А меня не забанили. И я предупреждал.
.
Q: Накручивать плохо, обходить запрещение DHT плохо, пить пиво плохо..
A: А я ещё и матом ругаюсь!
.
Q: У МЕНЯ НИЧЕГО НЕ ПОЛУЧАЕТСЯ!!111
A: Нажмите Alt+F4. Спасибо.
.