Newbie
Группа: Пользователи
Сообщений: 1
Регистрация: 9.10.2013
Пользователь №: 1747
|
Описание- Заставляет µTorrent показывать флаги Белоруссии, Казахстана и еще 188 стран. Флаги видны у 99.9% участников обмена.
- Применим ко всем версиям µTorrent — от 1.8.x до самых последних.
- После однократного применения не требует обновлений, решает проблему флагов раз и навсегда.
Спойлер (+/-)
Как µTorrent сопоставляет флаги участникам обмена
АлгоритмСтрана каждого участника обмена определяется либо на основе обратного DNS, либо через DNSBL: - Делается запрос обратного DNS. В зависимости от полученного ответа возможны следующие случаи:
- Получено имя в домене страны, вида peer12-34-5-67.mycity.ru. Самый простой случай. Из доменного имени извлекается код страны (RU) и ему сопоставляется флаг. Расширено патчем для доменов, неточно соответствующих странам.
- Получено имя в домене .com или .net:
- При наличии файла флагов код страны (RU) ищется согласно этому файлу. Если код не найден, выводится флаг с внутренним кодом 00, имеющий вид флага США.
- При отсутствии файла флагов полученное доменное имя игнорируется. Если при этом включен расширенный параметр peer.resolve_country, берется IP-адрес участника и ищется в DNSBL.
- Если получено имя в другом негеографическом домене — .org, .biz, .arpa и пр., поиск флага прекращается. Исправлено патчем.
- Если в ответ на запрос обратного DNS ничего не получено, то при наличии наличии файла флагов поиск также прекращается, поскольку для интерпретации ответа DNSBL нужен числовой код страны. А вот если файла флагов нет, поиск по DNSBL ведется обычным порядком.
- Если включен расширенный параметр peer.resolve_country, IP-адрес участника раздачи ищется в DNSBL, где результатом является числовой код страны. В оригинальном µTorrent есть внутренний список из 60 стран, содержащий как буквенные, так и числовые коды, — по нему и сопоставляются флаги. Присутствие файла флагов отключает встроенный список, в результате чего флаги исчезают у всех участников без доменных имен, в том числе и для стран из встроенного списка.
Проще говоря, нам предлагается либо полноценный поиск, но только для тех стран, которые нравятся разработчикам µTorrent, либо бесконечная головная боль с обновлением файла флагов плюс белые пятна участников обмена, имеющих только IP-адреса. Проверка- Удостоверьтесь, что в расширенных настройках стоит peer.resolve_country = true.
- Скачайте файлы flags.bmp (раз или два) и flags.conf (раз или два), положите их в папку с настройками µTorrent. Не выходя из µTorrent, нажмите Ctrl+Shift+R, чтобы перечитать настройки флагов. В оригинальном µTorrent могут появиться новые флаги, но у всех IP-адресов они исчезнут.
- Удалите flags.bmp и flags.conf, снова нажмите Ctrl+Shift+R. В пропатченной версии флаги появятся у всех, а в оригинальном µTorrent — только у «понравившихся» стран.
Опыт можно провести попеременно с исходным и патченным µTorrent.
Что исправляется патчем- Встроенный список стран — буквенными и числовыми кодами и флагами 246 стран и территорий, актуальными на 2013 год.
- Добавляется список двухбуквенных доменов, неточно соответствующих странам. Флаги участников из этих доменов определяются по IP:
Код AN, CC, DJ, EU, FM, HT, IM, IO, ME, MU, NU, SU, TC, TK, TO, TP, TV, WS - Определение страны по IP — для всех негеографических доменов (.com, .net, .org, .info и пр.) и псевододоменов (вроде .arpa или даже localhost).
Спойлер (+/-)
Судан и Южный Судан
- Используемый µTorrent сервис DNSBL возвращает старый код Судана (736 вместо 729), который и пришлось поместить в список.
- Сервис ничего не знает про Южный Судан (SS), поэтому определение Южного Судана возможно лишь по обратному DNS, пока владелец DNSBL не внесет его в свой список.
Спойлер (+/-)
246 стран
Код AD, AE, AF, AG, AI, AL, AM, AO, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BM, BN, BO, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CS, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UK, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, YE, YT, ZA, ZM, ZW
Потребуется для работы- UPX для распаковки utorrent.exe или китайский распаковщик для нестандартно упакованных современных версий.
- FASM для компиляции исходников.
- Редактор ресурсов для замены bmp с флагами (я использовал Resource Hacker).
- Редактор PE-файлов для внедрения секции (я использовал LordPE).
- Hex-редактор для поиска и замены кода (я использовал режим просмотра Dos Navigator (DN/2 for Win32)).
Процедура обновления- Распаковываем utorrent.exe.
- Запускаем редактор ресурсов, открываем распакованный utorrent.exe и заменяем ресурс BITMAP с флагами (они видны при просмотре) содержимым файла Flags.bmp.
- При помощи FASM компилируем CountriesAll.asm, получая в результате CountriesAll.bin (в среде FASMW открываем файл и нажимаем Ctrl+F9).
- При помощи PE-редактора изменяем состав секций:
- Открываем utorrent.exe, переходим к редактированию секций (PE Editor → выбор файла → Sections в LordPE).
- (Необязательно) Удаляем секцию .reloc (последовательно ПКМ → truncate at section start, ПКМ → wipe section header в LordPE).
- Внедряем CountriesAll.bin как секцию (ПКМ → load section from disk... → выбираем файл CountriesAll.bin в LordPE).
- Устанавливаем свойства внедренной секции (ПКМ → edit section header... → вводим .flags в поле Name и 40000040 в поле Flags в LordPE).
- Запоминаем или записываем на бумажку/в файл значение VitrualAddress (оно же VOffset), назначенное нашей секции .flags. Оно нам понадобится на следующем шаге.
- Сохраняем utorrent.exe и закрываем PE-редактор (LordPE автоматически сохраняет изменения при выходе).
- Патчим код обработки списка стран:
- Патчим код обработки доменов:
Сохраняем, запускаем, наслаждаемся. Если не получилось — ищем ошибки. Трудней всего вводить коды, больше всего ошибок случается на них.
WorldPatch.7z ( 72,59 килобайт )
Кол-во скачиваний: 247
Эскизы прикрепленных изображений
|