На страницу краков.

На главную страницу
Сразу после написания, а вернее, дополнения тутора по GifMovieGear, и скачивания себе HTML-редактора SNK VHTML Workshop, я решил посмотретьЮ, а нельзя ли сделать что-нибудь, чтобы этот редактор запоминал-таки настройки (в FAQ сказано, что это не работает в нерегистренной версии 3.1), а также чтобы программа не доставала меня своим назойливым предложением зарегистрироваться.
Сказано - сделано.

Загружаем vh.exe в IDA 3.84 Pro, ждем некоторое время, предлагаем IDA воспользоваться файлом сигнатур для Delphi Visual Component Library 3.0, и, примерно спустя пару часов (ну, не быстрый у меня компьютер, что поделаешь) имеем листинг программы.
Запускаем жертву, пробуем зарегистрироваться. На наши жалкие попытки ее обмануть жертва [пока что] отвечает мессагбоксом "Invalid key!". Что ж, поищем сию строку в IDA. IDA находит такую строчку, справа от которой мы видим "XREF ....", поместив курсор на который, и, нажав Enter, мы попадаем в код какой-то процедуры. При всем при том, замечаем, что буквально парой строчек выше инструкции помечены именем метки loc_[blah-blah], на которую есть ссылка. Смотрим, кто же ссылается на эту метку - а ссылается на нее условный переход, над которым видим:
call sub_blah-blah
test al,al

ага! Значит, Процедура устанавливает флаг в al, что ж, пойдем внутрь процедуры.

внутри процедуры идем в самый конец, где, перед инструкцией ret производятся манипуляции над al или eax. Таковой является xor eax, eax.
Заменив этот xor на
inc eax
nop
получим вполне зарегистрированную версию программы.
Для особо ленивых:

[BeginCRX"Vh.crx"]--------------------------------------------------
 Description: [W9x] SNK Visual HTML Workshop 3.1 Professional (beta)
 About program: Nice HTML editor. Almost WYSIWG.
 Crack subject: Register it!
 Crack made by: ctocopok
 Crack made at: 23.12.00 11:05:58
 Comments: В обpазовательных целях, конечно.
 Comments: www.snkey.com
 Protection %%: [І°°°°°°°°°°°°°°°°°°°] %01
 Check: [Vh.exe] Size: 2179072, CRC32: 9A2AF3D4
 Time for hack: 00:01:00
 Type of hack: MOV Correction/NOPing
 Used packer: None
 Used unpacker: None
 Src language: Borland Delphi
 Price: RUR 120.
 Used tools: IDA 3.84b, Hiew 6.2, C2F/W32.GUI v0.7
 Under Music: 3EMfiPA
[BeginCRK]--------------------------------------------------
SNK Visual HTML Workshop 3.1 Professional (beta)

Register it!
Vh.exe
0016CA13: 8B 40
0016CA14: C3 90

Убрать дебильные окошки при работе с FTP:
Vh.exe
0015082B: 74 EB

Разрешить работать с Soft-Ice:
Vh.exe
00187C7B: 83 31
00187C7C: F8 C0
00187C7D: FF 48
00187C7E: 74 EB>

[EndCRK]--------------------------------------------------
[EndCRX]--------------------------------------------------


Дополнение от 30.12.2000

Заколебался я при отправке файлов на сервер (FTP) нажимать на "ОК" в куче окошек, которые выскакивают при этом процессе.
Решил поправить дело. Взял в руки Soft-Ice 4.0, и попытался запустить программку. Не тут-то было!
При запущенном Soft-Ice программа не работает! Не трапится, не ругается, а просто молча не грузится. Некрасиво с ее стороны, однозначно.
Что ж, и это поправимо. Загрузим файл снова в IDA. Попробуем поискать все вхождения строки "ice" в программе. Пропустив буквально несколько находок в строчка вроде "PrinterDevice", мы увидим такую находку: \\SICE
Отлично, посмотрим, кому же не терпиться попользоваться этой строкой? Оказывается, эта строка пережается в качестве параметра функции CreateFile.
Понятно. С помощью CreateFile программа проверяет наличие отладчика в памяти компьютера. Следом за вызовом видим сравнение:

cmp eax, -1
jz loc_0_xxx
push eax
...
call CloseHandle
mov bad_guyFlag,1
...
loc_0_xxx:
ret


Поясню - В случае успешного открытия файла, Createfile помещает handle в eax, если же файл не был найден, то eax будет равен -1.
Нам надо, чтобы eax всегда был равен -1. Сэмулируем же это, заменив cmp eax,-1 на
xor eax, eax
dec eax

После чего изменим условный переход на безусловный. (74->EB).


Для ленивых сразу дам оффсеты и значения, а как убрать окошки, вылетающие при хакачке файлов объясню чуть позже.

Убрать дебильные окошки при работе с FTP:
0015082B: 74 EB

Разрешить работать с Soft-Ice:
00187C7B: 83 31
00187C7C: F8 C0
00187C7D: FF 48
00187C7E: 74 EB

Изменения в версии SNK VHW3 версии 3.1.2 :

001867E3: 8B 40
001867E4: C3 90
Так как защита не меняется, то можно искать по сигнатуре. Думаю, найти ее будет совсем несложно :) Оставляю это дело читателю.

Версия 3.1.3 - не знаю уж, что в ней нового, но что-то, видимо, есть...

00173E8F: 8B 40
00173E90: C3 90

Теперь, пожалуй, удосужусь выписать и саму сигнатуру, так как на бумажке она уже все равно есть, и именно по ней я 3.1.3 и правил:
Итак, ищем последовательность байт
EB DE 8B C3 5F 5E 5B 8B E5 5D C2 04 00 00 00 FF FF FF FF 01 00
И заменяем в этой последовательности
-- -- 40 90 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --


Материал предоставлен исключительно в образовательных целях. В случае использования данного материала в нелегальных целях, а также в случае нанесения читателями данного материала ущерба кому-либо каким-либо образом, компенсация ущерба не может быть обращена на автора материала.
Ни одно животное, кроме автора не пострадало ни при сборе информации для данной статьи, ни при ее опубликовании.

(c) ctocopok, 2000.





* Извините, но в данный момент существует проблема с подключением к MySQL серверу.

Приносим свои извинения, просим Вас зайти немного позже.