Исследование защиты программы Batch Text Replacer
Скриншот программы Batch Text Replacer
Программа Batch Text Replacer предназначена для пакетной обработки текстовых файлов на предмет поиска, замены, добавления или удаления произвольных фрагментов текста. Огромное количество правил обработки позволяют выполнить практически любую задачу по модификации текстов. Всю прелесть портит необходимость выкладывать за программу деньги.
Забираем с сайта дистрибутив, устанавливаем, запускаем, смотрим. Нас с ходу встречает окно с предупреждением о триальном использовании, в заголовке главного окна надпись о незарегистрированной версии, этого пока хватит. Главный исполняемый файл ничем не упакован, значит что с ним надо сделать? Правильно, отправляем его на разбор в дизассемблер. Основной интерфейс на немецком языке, в ресурсах строки тоже на немецком. Моих примерно никаких знаний немецкого хватило, чтобы найти нужные строки:
Строка в ресурсах
Нас интересует строка о том, что программа зарегистрирована. Эта строка имеет числовой индекс 63045 или 0F645h, если в шестнадцатеричной системе счисления. Поиском по строке "0F645h" в листинге дизассемблера обнаруживается стандартная для Дельфи конструкция:
Code (Assembler) : Убрать нумерацию
- .text:00D4F6E0 off_D4F6E0 dd offset hInstance
- .text:00D4F6E4 dd 0F645h
Code (Assembler) : Убрать нумерацию
- .text:00D4FE5B mov eax, [eax]
- .text:00D4FE5D mov eax, [eax+64h]
- ; Выполнить функцию проверки
- .text:00D4FE60 call sub_B7C224
- .text:00D4FE65 cmp al, 2
- ; Если результат AL=2, то программа зарегистрирована
- .text:00D4FE67 jz short loc_D4FECF
- .text:00D4FE69 lea edx, [ebp+var_1C]
- .text:00D4FE6C mov eax, offset off_D4F6D8
- .text:00D4FE71 call sub_40C2C4
- ...
- ...
- .text:00D4FECF loc_D4FECF:
- .text:00D4FECF lea edx, [ebp+var_30]
- ; "Lizenzstatus" ("Статус лицензии")
- .text:00D4FED2 mov eax, offset off_D4F6D8
- .text:00D4FED7 call sub_40C2C4
- .text:00D4FEDC mov edx, [ebp+var_30]
- .text:00D4FEDF lea ecx, [ebp+var_2C]
- .text:00D4FEE2 mov eax, off_DE80FC
- .text:00D4FEE7 mov eax, [eax]
- .text:00D4FEE9 call sub_661B68
- .text:00D4FEEE push [ebp+var_2C]
- .text:00D4FEF1 push offset asc_D4FFA4 ; ": "
- .text:00D4FEF6 lea edx, [ebp+var_38]
- ; "Registriert" ("Зарегистрировано")
- .text:00D4FEF9 mov eax, offset off_D4F6E0
- .text:00D4FEFE call sub_40C2C4
- .text:00D4FF03 mov edx, [ebp+var_38]
- .text:00D4FF06 lea ecx, [ebp+var_34]
Code (Assembler) : Убрать нумерацию
- .text:00B7C224 sub_B7C224 proc near
- .text:00B7C224 push ebx
- .text:00B7C225 push esi
- .text:00B7C226 mov esi, eax
- .text:00B7C228 xor ebx, ebx
- .text:00B7C22A mov eax, esi
- .text:00B7C22C call sub_B7C21C
- .text:00B7C231 test al, al
- .text:00B7C233 jz short loc_B7C23F
- .text:00B7C235 mov bl, 1
- .text:00B7C237 cmp byte ptr [esi+19h], 0
- .text:00B7C23B jz short loc_B7C23F
- .text:00B7C23D mov bl, 2
- .text:00B7C23F loc_B7C23F:
- .text:00B7C23F mov eax, ebx
- .text:00B7C241 pop esi
- .text:00B7C242 pop ebx
- .text:00B7C243 retn
- .text:00B7C243 sub_B7C224 endp
Программа успешно "зарегистрирована"
Триальное окно при старте не появляется, в заголовке главного окна и в окне "О программе" красуется надпись "Registered". По функционалу тоже никаких ограничений не наблюдается. Цель достигнута. Сигнатура для поиска очень приметная, поэтому сделать универсальный патч не составит никакого труда.
Просмотров: 1586 | Комментариев: 0
Метки: исследование защиты
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Комментариeв нет
Добавить комментарий
Заполните форму для добавления комментария