Исследование защиты программы uTorrent
Скриншот программы uTorrent
Давно пользуюсь uTorrent в качестве торрент-клиента, хоть и появилось немало альтернатив, но это уже дело привычки. Тут решил обновиться до последней версии и обнаружил, что теперь интерфейс загажен неотключаемой рекламой, постоянно вылезают окна с предложением купить некую улучшенную версию, и вообще, отключаемая реклама старых версий теперь кажется милой шуткой. Но мне кажется, что со стороны аффтаров очень опрометчиво ожидать денег от людей, которые нахаляву качают с торрентов пиратские фильмы, софт и музыку. Вот и от меня они ни копейки не дождутся. А попутно я устраню еще пару появившихся в программе недостатков.
Окно незарегистрированной программы
Исполняемый файл упакован UPX и подписан цифровой подписью, но теперь с распаковкой без проблем справляется сам UPX. Но перед распаковкой лучше отрезать цифровую подпись, чтобы в дальнейшем не было проблем с антивирусами. Посмотрим, за что можно зацепиться для начала исследования. Наиболее характерная строка, на мой взгляд, это "Pro". Раз уж нам так это навязчиво предлагают, то воспользуемся предложением, но только в своих целях.
Строка в файле
Поиск по юникодной строке выводит нас вот к такому месту. Тут видна характерная строка "utPro", ниже какая-то хрень про активацию и все такое прочее. Стоит открыть файл в дизассемблере и посмотреть, где и как это все используется.
Code (Assembler) : Убрать нумерацию
- ; Вызвать функцию проверки
- .text:005906A3 call sub_590680
- ; Если AL=0, то перепрыгнуть код, связанный с "Pro"-строкой
- .text:005906A8 test al, al
- .text:005906AA jz loc_59073A
- .text:005906B0 lea ecx, [ebp-54h]
- .text:005906B3 call sub_65CB60
- .text:005906B8 and dword ptr [ebp-4], 0
- .text:005906BC lea ecx, [ebp-28h]
- .text:005906BF push offset aUtpro ; "utPro"
- .text:005906C4 call sub_40A277
- .text:005906C9 lea eax, [ebp-28h]
Code (Assembler) : Убрать нумерацию
- .text:00590680 sub_590680 proc near
- .text:00590680 call sub_590671
- .text:00590685 sub eax, 0
- .text:00590688 jz short loc_590693
- .text:0059068A dec eax
- .text:0059068B sub eax, 1
- .text:0059068E jz short loc_590693
- .text:00590690 xor al, al
- .text:00590692 retn
- .text:00590693 ; -----------------------------------------
- .text:00590693 loc_590693:
- .text:00590693 mov al, 1
- .text:00590695 retn
- .text:00590695 sub_590680 endp
Программа успешно "зарегистрирована"
Как мы видим, интерфейс заметно изменился. Пропали баннеры, ссылки с предложениями потратить бабло, а навязчивые окна больше не открываются. Основная цель достигнута. В принципе, на этом можно было бы и заканчивать.
Но после обновления обнаружился еще один косяк. По какой-то непонятной причине аффтары поменяли цвет фона строки списка, на которой стоит курсор. Раньше он был хорошо заметен, теперь же практически сливается с основным фоном окна. Настроек для изменения цвета я не нашел, поэтому опять придется прибегнуть к точечной хирургии. Для начала надо определить значение этого мерзкого цвета.
Определяем цвет фона
Воспользуемся программой Color Dropper. Как мы видим в окне программы, искомое значение фонового цвета - 0xF9EDE2, чтобы искать строку в листинге дизассемблера, надо чуток изменить значение на "0F9EDE2h". Найдется единственное вхождение.
Code (Assembler) : Убрать нумерацию
- .text:0059A450 sub_59A450
- .text:0059A450 mov eax, 0F9EDE2h
- .text:0059A455 retn
- .text:0059A455 sub_59A450 endp
Фоновый цвет изменен
Вот теперь совсем красота. Все основные недостатки устранены, цель достигнута. Надеюсь, что и следующие обновления uTorrent можно будет довести до ума описанным выше способом.
Просмотров: 6982 | Комментариев: 44
Метки: исследование защиты, сеть
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Exit
(27.01.2019 в 12:27):
Упс, поторопился ))
За цвет строки, когда с нее снят фокус, отвечает параметр "Рельефные объекты", в окне "Цвет и внешний вид окна"
По умолчанию, у него значение, в RGB, 240 240 240.
Немного "подкрутил", до значения 225 225 225
И получил желаемое ))) https://i.imgur.com/4DQbKSb.png
ManHunter
(24.01.2019 в 10:59):
Если возникли мысли патчить винду, то лучше обновить торрент :)
Ссылка на личерский мод еще живая.
Ссылка на личерский мод еще живая.
Exit
(24.01.2019 в 09:23):
ManHunter,
В настройках "Цвет и внешний вид окна" не нашел, где менять цвет строки, если с нее снят фокус.
Я правильно понимаю, что надо редактировать:
тема.theme и тема.msstyles ?
В настройках "Цвет и внешний вид окна" не нашел, где менять цвет строки, если с нее снят фокус.
Я правильно понимаю, что надо редактировать:
тема.theme и тема.msstyles ?
ManHunter
(16.01.2019 в 11:42):
Exit, это стандартные виндовые цвета элементов управления, они не зашиты в программе.
Exit
(16.01.2019 в 07:05):
ManHunter, сорри за нубский вопрос, но в uTorrent 1.8.2.15357, не получилось изменить "цвет фона строки списка, на которой стоит курсор".
В старых версиях, когда выделяешь, строку - она становится синей и ее отлично видно https://i.imgur.com/YqnrdKV.png
Но когда выделяешь файл в "раздаче", чтоб изменить приоритет закачки, то выделенный торрент становится серым. https://i.imgur.com/trQTDnx.png
Если приглядеться, то его можно найти в списке, но хотел сделать поярче или оставить синим.
Пробовал в HIEW, в режимах HEX и Decode искать hex значения 0FF9933 и 0F0F0F0 - без результата.
Для определения цвета, использовал Color Dropper.
0xFF9933 - синий, а 0xF0F0F0 - серый.
P.S. это у меня кривые рученки или в старых версиях другие алгоритмы?
http://rgho.st/8LzGpPtwt выложил анпакнутый юТоррент
В старых версиях, когда выделяешь, строку - она становится синей и ее отлично видно https://i.imgur.com/YqnrdKV.png
Но когда выделяешь файл в "раздаче", чтоб изменить приоритет закачки, то выделенный торрент становится серым. https://i.imgur.com/trQTDnx.png
Если приглядеться, то его можно найти в списке, но хотел сделать поярче или оставить синим.
Пробовал в HIEW, в режимах HEX и Decode искать hex значения 0FF9933 и 0F0F0F0 - без результата.
Для определения цвета, использовал Color Dropper.
0xFF9933 - синий, а 0xF0F0F0 - серый.
P.S. это у меня кривые рученки или в старых версиях другие алгоритмы?
http://rgho.st/8LzGpPtwt выложил анпакнутый юТоррент
Speccy forever
(14.07.2018 в 15:19):
К сожаленю у меня версия 3.4.5 и там немного другая структура кода, хотя этот кусок кода отвечающий за отдачу трекеру на 100% мной найден. Может кто подскажет принцип действий?
С иконками соцсетей так-же пришлось попотеть, ибо были значительные отличия в коде, но методом проб и ошибок всё получилось.
User
(02.03.2018 в 07:52):
По поводу перегрузки жестких дисков
https://geektimes.ru/post/107605/
https://geektimes.ru/post/107607/
https://geektimes.ru/post/107637/
Если кратко
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\utorrent.exe]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\utorrent.exe\PerfOptions]
"IoPriority"=dword:00000000
"PagePriority"=dword:00000001
забыл. Плюс к реестру
https://hsto.org/storage/8ab55...10d89aad.png
https://geektimes.ru/post/107605/
https://geektimes.ru/post/107607/
https://geektimes.ru/post/107637/
Если кратко
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\utorrent.exe]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\utorrent.exe\PerfOptions]
"IoPriority"=dword:00000000
"PagePriority"=dword:00000001
забыл. Плюс к реестру
https://hsto.org/storage/8ab55...10d89aad.png
xussr
(01.10.2017 в 09:32):
Единственно не работает стрим плеер и антивирс где искать концы?
xussr
(01.10.2017 в 08:31):
Нет ничего невозможного вот в последней версии 3.5(44090)
CPU Disasm
Address Hex dump Command Comments
00593C73 \. C3 RETN
00593C74 /$ E8 ECFFFFFF CALL 00593C65 ; [uTorrent_unpacked.00593C65
00593C79 |. 83E8 00 SUB EAX,0 ; Switch (cases 0..2, 2 exits)
00593C7C |. 74 09 JZ SHORT 00593C87
00593C7E |. 48 DEC EAX
00593C7F |. 83E8 01 SUB EAX,1
00593C82 EB 03 JMP SHORT 00593C87
00593C84 |. 32C0 XOR AL,AL ; Default case of switch uTorrent_unpacked.593C79
00593C86 |. C3 RETN
00593C87 |> B0 01 MOV AL,1 ; Cases 0, 2 of switch uTorrent_unpacked.593C79
00593C89 \. C3 RETN
00593C8A /$ B8 25CA6700 MOV EAX,0067CA25 ; Entry point
00593C8F |. E8 EC1C0900 CALL 00625980
00593C94 |. 83EC 74 SUB ESP,74
00593C97 |. E8 D8FFFFFF CALL 00593C74
00593C9C |. 84C0 TEST AL,AL
00593C9E |. 0F84 8A000000 JZ 00593D2E
00593CA4 |. 8D4D AC LEA ECX,[EBP-54]
00593CA7 |. E8 329B0C00 CALL 0065D7DE ; [uTorrent_unpacked.0065D7DE
00593CAC |. 8365 FC 00 AND DWORD PTR SS:[EBP-4],00000000
00593CB0 |. 8D4D D8 LEA ECX,[EBP-28]
00593CB3 |. 68 C4B66D00 PUSH OFFSET 006DB6C4 ; /Arg1 = ASCII "utPro"
00593CB8 |. E8 9263E7FF CALL 0040A04F ; \uTorrent_unpacked.0040A04F
00593CBD |. 8D45 D8 LEA EAX,[EBP-28]
00593CC0 |. C645 FC 01 MOV BYTE PTR SS:[EBP-4],1
CPU Disasm
Address Hex dump Command Comments
00593C73 \. C3 RETN
00593C74 /$ E8 ECFFFFFF CALL 00593C65 ; [uTorrent_unpacked.00593C65
00593C79 |. 83E8 00 SUB EAX,0 ; Switch (cases 0..2, 2 exits)
00593C7C |. 74 09 JZ SHORT 00593C87
00593C7E |. 48 DEC EAX
00593C7F |. 83E8 01 SUB EAX,1
00593C82 EB 03 JMP SHORT 00593C87
00593C84 |. 32C0 XOR AL,AL ; Default case of switch uTorrent_unpacked.593C79
00593C86 |. C3 RETN
00593C87 |> B0 01 MOV AL,1 ; Cases 0, 2 of switch uTorrent_unpacked.593C79
00593C89 \. C3 RETN
00593C8A /$ B8 25CA6700 MOV EAX,0067CA25 ; Entry point
00593C8F |. E8 EC1C0900 CALL 00625980
00593C94 |. 83EC 74 SUB ESP,74
00593C97 |. E8 D8FFFFFF CALL 00593C74
00593C9C |. 84C0 TEST AL,AL
00593C9E |. 0F84 8A000000 JZ 00593D2E
00593CA4 |. 8D4D AC LEA ECX,[EBP-54]
00593CA7 |. E8 329B0C00 CALL 0065D7DE ; [uTorrent_unpacked.0065D7DE
00593CAC |. 8365 FC 00 AND DWORD PTR SS:[EBP-4],00000000
00593CB0 |. 8D4D D8 LEA ECX,[EBP-28]
00593CB3 |. 68 C4B66D00 PUSH OFFSET 006DB6C4 ; /Arg1 = ASCII "utPro"
00593CB8 |. E8 9263E7FF CALL 0040A04F ; \uTorrent_unpacked.0040A04F
00593CBD |. 8D45 D8 LEA EAX,[EBP-28]
00593CC0 |. C645 FC 01 MOV BYTE PTR SS:[EBP-4],1
Женя
(02.05.2017 в 22:27):
Старые версии 2.1 и 2.2 работают на ура, нет смысла использовать новые.
ManHunter
(02.02.2017 в 11:36):
Вспомнил, что мне не нравилось в старых версиях. Когда перемещаешь торрент по списку кнопками вверх-вниз, то каждый раз терялся фокус со списка, приходилось снова тыкать в список курсором. В новой версии с этим все нормально.
Maksovich
(24.12.2016 в 22:36):
До сих пор пользуюсь версией 2.2 и не парюсь. По сути можно поискать самую последнюю версию которая идет без рекламы и ей пользоваться. Но мне в 2.2 нравится интерфейс. Все просто, никаких панелей лишних и ненужных функций.
Скриншот: http://i88.fastpic.ru/big/2016...0f66c7ff.png
Скриншот: http://i88.fastpic.ru/big/2016...0f66c7ff.png
АндрейК
(15.12.2016 в 12:27):
Одно другому не мешает. Последовательная скачка файлов в наборе файлов, а также последовательное скачивание кусков файла помогают снизить нагрузку на диск. При этом вполне можно скачивать параллельно два торрента.
Если утрировать, то по дефолту ~64 дисковых потока, а при последовательном - лишь 2.Более того: не забываем про "track to track" у hdd и фрагментированности свободного места. В итоге wd green, сами по себе показывающие плачевные результаты многопоточной работы, при скачивании торрента (utorrent с дефолтными настройками) буквально захлёбываются.
Кратко: wd green для скачивания торрентов не очень хорошо подходят.
>хочется всё и сразу.
Вот и получается как в пословице про двух зайцев.
Если утрировать, то по дефолту ~64 дисковых потока, а при последовательном - лишь 2.Более того: не забываем про "track to track" у hdd и фрагментированности свободного места. В итоге wd green, сами по себе показывающие плачевные результаты многопоточной работы, при скачивании торрента (utorrent с дефолтными настройками) буквально захлёбываются.
Кратко: wd green для скачивания торрентов не очень хорошо подходят.
>хочется всё и сразу.
Вот и получается как в пословице про двух зайцев.
ManHunter
(14.12.2016 в 22:42):
Совесть не мешает, просто один торрент тянется со скоростью 100 кб/с, второй разгоняется до 10 мб/с, а хочется всё и сразу.
АндрейК
(14.12.2016 в 19:55):
>"оверлоады, особенно при параллельном старте нескольких объемных загрузок. "
Совесть мешает включить последовательную загрузку ?
Кстати, хороший повод повозится в отладчике для появления всех пунктов "дополнительно" что при нажатии shift+f2, что без этого.
Совесть мешает включить последовательную загрузку ?
Кстати, хороший повод повозится в отладчике для появления всех пунктов "дополнительно" что при нажатии shift+f2, что без этого.
Serg0FFan
(13.12.2016 в 20:45):
Использую уже лет 5 версию 2.0.4 и вполне себе рад. Качает в разы быстрее все новых версий, никаких ошибок не выдаёт. Никакой рекламы нет. Только сразу надо отключить автообновление нафиг.
ManHunter
(12.12.2016 в 18:35):
Повезло, наверное :) У меня тоже периодически вываливаются оверлоады, особенно при параллельном старте нескольких объемных загрузок.
АндрейК
(12.12.2016 в 11:55):
Uncle V?der, почему у меня такого нет ?
Uncle Vёder
(04.12.2016 в 11:33):
Основная проблема uTorrent даже не в рекламе, а в том, что он отвратительно работает с дисками. Стоит только обзавестись интернетом быстрее 50Мбит/с - и вас ждут постоянные просадки скорости и "cache overload". И никакие шаманства с настройками не помогают (пробовал и давать более жирный кэш, и наоборот вообще его отключать).
В итоге перешёл на qBittorrent.
В итоге перешёл на qBittorrent.
user0
(01.12.2016 в 14:12):
Вот с кинозала ни разу не качал, рутрекера/порнолаба, ннм, да помойки вроде рутора вроде хватало.
ps. если будет желание еще ковырять utorrent, то может убрать строку поиска/фильтр и все иконки что справа от нее дабы когда делаешь окошко программы более компактным, вся эта ересь на налезала на ряд иконок слева.
ps. если будет желание еще ковырять utorrent, то может убрать строку поиска/фильтр и все иконки что справа от нее дабы когда делаешь окошко программы более компактным, вся эта ересь на налезала на ряд иконок слева.
ManHunter
(01.12.2016 в 12:38):
Нормальные трекеры вроде бы отслеживают таких хитрожопых личеров и банят их. Помнится, на кинозале я решил себе немного рейтинг подкрутить, так тут же выпасли, объявили первое и последнее предупреждение.
user0
(01.12.2016 в 03:03):
>Мод pro
вах, от души )
"я тут подумал", сидя на 2ой патченой версии уже лет 5, а насколько вообще полезны/актуальны сейчас две модификации:
1) резать раздачу - основная идея не палиться копирастам с сидованием, если живешь заграницей (сейчас вроде поутихли страсти, но все же..). Хотя с этой проблемой отлично справляется тор.
2) не отдавать значения скачаного трекеру - было актуально на заре становления р2р. Теперь же расплодилось трекеров без регистрации, да и фри лич на многих с регистрацией в порядке вещей, каналы провайдеров опять же слегка потолще стали.
вах, от души )
"я тут подумал", сидя на 2ой патченой версии уже лет 5, а насколько вообще полезны/актуальны сейчас две модификации:
1) резать раздачу - основная идея не палиться копирастам с сидованием, если живешь заграницей (сейчас вроде поутихли страсти, но все же..). Хотя с этой проблемой отлично справляется тор.
2) не отдавать значения скачаного трекеру - было актуально на заре становления р2р. Теперь же расплодилось трекеров без регистрации, да и фри лич на многих с регистрацией в порядке вещей, каналы провайдеров опять же слегка потолще стали.
ManHunter
(30.11.2016 в 17:06):
Мод pro, с измененным цветом, без иконок соцсетей, с нулевой загрузкой для трекеров:
http://rgho.st/8chp5TrBv
Реакция всяких говноантивирусов меня не интересует, так же как и последствия от использования мода. Есть сомнения - не качайте.
http://rgho.st/8chp5TrBv
Реакция всяких говноантивирусов меня не интересует, так же как и последствия от использования мода. Есть сомнения - не качайте.
X-Wing Top Ace
(29.11.2016 в 17:33):
Или нопим команду retn по адресу 00590692. ;)
ManHunter
(29.11.2016 в 10:53):
фу таким быть :)
0049B95B xor ecx,ecx
0049B95D nop
0049B961 push ecx
0049B962 push ecx
0049B963 nop
user0
(29.11.2016 в 10:17):
А нет желания найти как отключить в новых версиях:
1) раздачу или
2) не отдавать значения скачаного трекеру (в версиях до 3ей занулялся "downloaded=%Ls")
1) раздачу или
2) не отдавать значения скачаного трекеру (в версиях до 3ей занулялся "downloaded=%Ls")
ManHunter
(29.11.2016 в 00:42):
Обнови качалку до последней версии, затем попробуй до патча найти в настройках этот "offer".
Compiller
(29.11.2016 в 00:36):
А где переход определяющий портативность программы?
Если utorrent запустить в папке с файлом settings.dat нулевого размера - он станет портативным. Можно этот момент тоже поправить на безусловный вариант?
Баннеры отключаются если в настройки - дополнительно ввести слово offer и все параметры переключить в false
Если utorrent запустить в папке с файлом settings.dat нулевого размера - он станет портативным. Можно этот момент тоже поправить на безусловный вариант?
Баннеры отключаются если в настройки - дополнительно ввести слово offer и все параметры переключить в false
Алексей
(28.11.2016 в 17:44):
всё... получилось в hex-редакторе, хотя до этого всегда правил в отладчике и все было норм
ManHunter
(28.11.2016 в 15:30):
Патчат в hex-редакторах, а не в отладчике.
Алексей
(28.11.2016 в 14:35):
http://image.prntscr.com/image...b2965296.png
http://image.prntscr.com/image...9e737022.png
и все равно реклама...
http://image.prntscr.com/image...9e737022.png
и все равно реклама...
ManHunter
(27.11.2016 в 22:20):
00590688: jz short loc_590693 -> jmp short loc_590693
Алексей
(27.11.2016 в 05:49):
меняю переход на безусловный, сохраняю, а реклама все равно остается...
Алексей
(27.11.2016 в 05:34):
не работает уже этот способ...
ManHunter
(26.11.2016 в 20:13):
Да любую версию вообще, они все работают. Какая понравится.
pawel97
(26.11.2016 в 18:57):
ManHunter, посоветуйте версию сабжа из личного опыта для повседневного пользования, а не ковыряния в дизасме и поиска сюрпризов. Мне не влом рекламу отключить патчем, но сама необходимость это делать не радует. Или хотя бы даже другим ставить, ещё чего доброго обновится сам и какой асктулбар при этом скачает...
Шурик
(25.11.2016 в 17:18):
Спасибо за ответ(значит обновлять не буду), и за наводку, сначала не обратил внимания на предмет скачивания.
ManHunter
(25.11.2016 в 10:23):
Еще есть "Стэн против сил зла" в озвучке хамстеров. Тоже типа Эша, такая же угарная жесть. Рекомендую.
Doxtur
(25.11.2016 в 09:45):
ООО! Эш против Зловещих мертвецов, зачетный сериал, а второй сезон вообще напалм)))
ManHunter
(23.11.2016 в 18:38):
Иконки убираются без проблем, обработчики копать нет желания.
00578BB6 push 0 -> push FF
00578C31 push 1 -> push FF
всплывающие подсказки и открытие ссылок подавляются обнулением соответствующих текстовых строчек.
00578BB6 push 0 -> push FF
00578C31 push 1 -> push FF
всплывающие подсказки и открытие ссылок подавляются обнулением соответствующих текстовых строчек.
Петр
(23.11.2016 в 16:40):
А такой вопрос: можно как-то убрать всякие "г-фубуки", "г-твитеры" и прочие визуальные гадости с соответствующими обработчиками? Или, возможно, есть вариант с "изящным" мультипатчером?
ManHunter
(23.11.2016 в 15:24):
Лично я ничего полезного не заметил.
Шурик
(23.11.2016 в 15:22):
Прошу прощения за офтоп, сам давно не обновлял клиент. В новых версиях появилось что-нибудь полезное или необходимое, ради чего стоило бы обновить до актуальной версии?
Добавить комментарий
Заполните форму для добавления комментария
Там тоже, когда переходишь из списка писем, в окно письма, подсветка строки была слабой.