Исследование защиты программы Bit Che
Скриншот программы Bit Che
Bit Che - неплохая программа на основе собственного скриптового языка, которая в основном используется в качестве поисковика торрентов. Программа парсит указанные сайты, извлекает из страниц нужную информацию и выводит ее в виде списка. В бесплатной версии недоступны некоторые функции, а платная версия требует перечисления денег разработчику и регистрации на его сайте. Какие-то лишние телодвижения, которых вполне можно избежать.
Первым делом забираем с офсайта дистрибутив. Устанавливаем, запускаем, смотрим. На первый взгляд все вроде работает, но при попытке, например, открыть новую вкладку результатов поиска, появляется сообщение о необходимости прогуляться в кассу.
Сообщение незарегистрированной версии
Исполняемый файл упакован UPX, никаких дополнительных наворотов там нет, поэтому просто распаковываем его средствами самого упаковщика: upx -d Bit_Che.exe
Строка сообщения в файле
В исполняемом файле легко находится строка сообщения незарегистрированной версии. Отправим распакованный файл в дизассемблер и посмотрим, где и при каких условиях эта строка задействуется.
Code (Assembler) : Убрать нумерацию
- .text:004A7D79 mov ecx, [ebp-54h]
- ; Указатель на ячейку памяти
- .text:004A7D7C mov edx, dword_6200C0
- .text:004A7D82 cmp word ptr [edx+ecx*2], 0FFFFh
- ; Если значение в памяти не равно 0FFFFh, то вывести сообщение
- .text:004A7D87 jnz short loc_4A7D9B
- .text:004A7D89 mov dword ptr [ebp-4], 4
- .text:004A7D90 mov word ptr [ebp-24h], 0FFFFh
- .text:004A7D96 jmp loc_4A7F16
- .text:004A7D9B ; --------------------------------------------
- .text:004A7D9B loc_4A7D9B:
- .text:004A7D9B mov dword ptr [ebp-4], 6
- .text:004A7DA2 mov word ptr [ebp-24h], 0
- .text:004A7DA8 mov dword ptr [ebp-4], 7
- .text:004A7DAF mov edx, offset aSorryButThisFe
- ; "Sorry, but this feature is disabled in "...
- .text:004A7DB4 lea ecx, [ebp-28h]
- .text:004A7DB7 call ds:__vbaStrCopy
- .text:004A7DBD mov dword ptr [ebp-48h], 38h
- .text:004A7DC4 lea eax, [ebp-28h]
Для патча надо определить, какая проверка выполняется первой и заменить ее на инициализацию ячейки памяти нужным нам значением. Первый этап выполняется в отладчике. Загружаем программу в отладчик, ставим хардварную точку останова с условием любого доступа на DWORD по адресу 006200C0.
Устанавливаем точку останова
Запускаем программу. Несколько раз точка останова сработает, но по коду это будут явно не проверки. Затем отладчик остановится на первой проверке:
Code (Assembler) : Убрать нумерацию
- .text:004B9110 mov eax, [ebp-208h]
- .text:004B9116 mov ecx, dword_6200C0
- .text:004B911C movsx edx, word ptr [ecx+eax*2]
- .text:004B9120 test edx, edx
- .text:004B9122 jnz loc_4B91B6
- .text:004B9128 mov dword ptr [ebp-4], 0CFh
Патчим файл
Теперь вместо проверки программа будет принудительно переведена в зарегистрированный режим. Сохраняем изменения, запускаем.
Программа успешно "зарегистрирована"
В окне "О программе" поменялся значок и красуется надпись "Plus Edition", с панели инструментов пропала иконка доната. Теперь проверим функционал. Самый простой способ - попробовать открыть больше одной вкладки поиска.
Программа успешно "зарегистрирована"
Все работает, никаких ограничений больше нет. Цель достигнута. На мой взгляд очень странное решение делать платной программу для поиска пиратского контента.
Просмотров: 2097 | Комментариев: 7
Метки: исследование защиты, сеть
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Kemper
(27.11.2018 в 09:35):
блин я то подумал что софт для поиска какойто новый))) - а так то да метёлка форева)))
ManHunter
(27.11.2018 в 07:53):
Kemper, как видно на скриншотах, в качестве демонстрации работы программы я использовал поиск творчества двух популярных металл-групп - Metallica (в простонародье "Метла", "Метёлка") и Accept. На это и обратили внимание комментаторы, которые разделяют мои музыкальные вкусы.
https://ru.wikipedia.org/wiki/Accept
https://ru.wikipedia.org/wiki/Metallica
https://ru.wikipedia.org/wiki/Accept
https://ru.wikipedia.org/wiki/Metallica
Kemper
(27.11.2018 в 02:48):
чтот я отстал от прогресса) - меня конечно не обламывает найти то что мне надо на трекерах по старинке - но ху из "метелка" и "Accept"?
ManHunter
(26.11.2018 в 20:26):
А метёлка что, не форева? :)
Lazy_Kent
(26.11.2018 в 20:00):
Про Accept подпишусь. :)
brute
(26.11.2018 в 18:05):
какая-то левая программа, ничего не находит, ничего не качает в отличие от.. других мест.. Поэтому её лечением даже заниматься не хочется.
Андрей
(25.11.2018 в 05:42):
Accept forever!
Добавить комментарий
Заполните форму для добавления комментария