
Исследование защиты программы Visual Subst

Скриншот программы Visual Subst
Visual Subst - это простая и эффективная утилита для создания и управления виртуальными дисками на основе локальных папок с помощью встроенной команды Windows subst. Программа решает несколько ключевых задач, делая работу с виртуальными дисками максимально удобной и функциональной. Но за денежку обеспечит идеальный выбор для разработчиков, системных администраторов и всех, кто часто работает с файлами и директориями.
Забираем с офсайта дистрибутив последней версии, устанавливаем, смотрим. Главный исполняемый файл ничем не упакован, отправляем его в дизассемблер. При попытке регистрации левыми данными программа реагирует сообщением.

Сообщение о неправильной регистрации
Индекс этой строки в ресурсах равен 35813 (или 8BE5h в шестнадцатеричной системе). Это значение было найдено в листинге кода, что позволило локализовать функцию проверки.
Code (Assembler) : Убрать нумерацию
- .text:0040638C mov [ebp+var_4], 0FFFFFFFFh
- .text:00406393 call sub_402BA0
- .text:00406398 jmp loc_406618
- .text:0040639D ; ----------------------------------------------
- .text:0040639D loc_40639D:
- .text:0040639D mov edi, 1
- .text:004063A2 jmp loc_406618
- .text:004063A7 ; ----------------------------------------------
- .text:004063A7 loc_4063A7:
- .text:004063A7 call sub_44F140
- .text:004063AC push 0
- ; Строка текста "The product key is not valid!"
- .text:004063AE push 8BE5h
- .text:004063B3 lea ecx, [ebp+var_AC]
- .text:004063B9 mov edx, [eax]
- .text:004063BB push ecx
- .text:004063BC mov ecx, eax
- .text:004063BE mov eax, [edx+4]
- .text:004063C1 call eax
- .text:004063C3 push 0 ; int
- .text:004063C5 push 10h ; uType
Code (Assembler) : Убрать нумерацию
- .text:004061C1 push eax ; int
- .text:004061C2 lea eax, [ebp+var_AC]
- .text:004061C8 push eax ; int
- ; Функция проверки
- .text:004061C9 call sub_407A90
- .text:004061CE add esp, 8
- .text:004061D1 test al, al
- ; Вызвать функцию перехода
- .text:004061D3 jz loc_4063A7
- .text:004061D9 push 0
- .text:004061DB call sub_40F690
- .text:004061E0 push 1 ; char
- .text:004061E2 push dword ptr [esi+0ACh] ; int
- .text:004061E8 mov ecx, offset dword_6AE050
- .text:004061ED push dword ptr [esi+0A8h] ; lpData
- .text:004061F3 call sub_40EC80
- .text:004061F8 test eax, eax

Программа успешно "зарегистрирована"
"Лицензия" успешно активирована, указано регистрационное имя. Программа работает без ограничений по функционалу и времени. Все ключевые возможности доступны, цель достигнута.
Просмотров: 412 | Комментариев: 6
Метки: исследование защиты

Комментарии
Отзывы посетителей сайта о статье
ManHunter
(04.07.2025 в 15:16):
Софтина делается такой, чтобы люди сами захотели деньги за свою программу, вот в этом и защита. А не лепить очередную говнозащиту на свое кривое говноподелие.

Артём
(04.07.2025 в 14:38):
kaktustv, Хороший продукт должен быть защищён более изощрённо. Вставили бы тогда ключи активации в сам код, что бы вообще никто не парился.

kaktustv
(04.07.2025 в 10:27):
Ценность этого разбора еще и в том, что, как минимум, еще 2 программы того же разработчика исправляются аналогично. Спасибо за идею, мастер!

ManHunter
(03.07.2025 в 10:27):
Да у ntwind программы вообще очень достойные, который год пользуюсь.

kaktustv
(03.07.2025 в 10:12):
Не ругайте таких разработчиков, скажите им спасибо.
Без таких нам жилось бы гораздо хуже.

Артём
(02.07.2025 в 21:26):
Да уж... Совсем обленились.

Добавить комментарий
Заполните форму для добавления комментария
