Исследование RegSnap v 2.8

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Оформил: DeeCo

Автор: http://www.cracklab.narod.ru

Захотелось мне как-то поисследовать программку на VB 🙂

и напоролся я на эту вот вешь. Она умеет делать снапшоты регистра форточек и чего-то там ещё, вобщем неважно. Приступим…

Первым делом я поглядел на программку:

1) Огромный NAG при старте с некоторой задержкой при запуске;

2) Напоминательное окно с 3 батонами;

3) Проверка CRC (на изменение кода программы);

4) во-всю юзает (M)ada(F)u(C)ka(42).dll;

Начнём с конца, т.е. отключим проверку CRC:

— Любым HEX-редактором изменим пару байт в программе и запустим её:

мы увидим сообщение «Program corupted» (messagebox)

— Ставим бряк на messageboxA:

bpx MessageboxA

и опять запускаем прогу, при этом мы вывалимся где-то в системной библиотеке, а чтобы из неё выйти и опять попасть в модуль regsnap нужно нажать F12 4 раза, и когда мы это сделаем, то окажемся вот в этом месте:

:00406848 FF1588774100 Call dword ptr [00417788] <--вызов процедуры проверки CRC (в eax 0, если CRC нарушен и 1 - если всё ОК).

:0040684E A1F4494200 mov eax, dword ptr [004249F4]

:00406853 83C408 add esp, 00000008

:00406856 3BC7 cmp eax, edi <-- проверяем EAX

:00406858 7520 jne 0040687A <-- ЕСЛИ всё ОК - прыгаем

:0040685A 6AFF push FFFFFFFF

:0040685C 57 push edi

:00406862 E8DBDA0000 Call 00414342 <-- Вызов сообщения о нарушенном CRC

:00406867 33C0 xor eax, eax <-- вот тут мы остановились

:00406869 8B4DF4 mov ecx, dword ptr [ebp-0C]

:0040686C 64890D00000000 mov dword ptr fs:[00000000], ecx

:00406873 5F pop edi

:00406874 5E pop esi

:00406875 5B pop ebx

:00406876 8BE5 mov esp, ebp

:00406878 5D pop ebp

:00406879 C3 ret

Как видите, по адресу 00406856 проверяют EAX, я предлягаю записать вместо этой команды mov eax,01 чтоюы для последующих проверок, если такие будут, всё было нормально, а вместо команды jne 0040687A вписать jmp 0040687A, чтобы в любом случае перепрыгивать ненужное окно и процедуру закрытия программы. ВНИМАНИЕ!!! команда mov eax,01 сожрёт 5 байт, в то время как cmp eax, edi всего 2 байта, поэтому будет использованы байты, выделенные под процедуру вывода сообщения об ошибке и процедуры закрытия программы, всё равно ведь мы эту процедуру перепрыгиваем и больше никогда использовать не будем!!! Итак, если вы всё сделали как я сказал, то больше программа не будет ругаться на то, что её кто-то изменял.

И ещё, в программе реализован полиморфизм, т.е. при обнаружении CRC ошибки, она сама затирает некоторые куски кода другими опкодами, что делает все краки нерабочими, поэтому при внесении изменений, рекомендую делать эти изменения в абсолютно «чистой» версии regsnap.exe.

2)Лирическое отступление:

Программа записывает в реестре в ключе:

HKEY_CURRENT_USER\Software\Vitas\regsnap\main

в параметре количество дней оставшегося триала. Для начала уберём Огромный NAG-screen при запуске:

— ставим бряк на CreateWindowExA

— запускаем прогу и почти сразу вываливаемся в айсе

— Жмём F12 ровно 12 раз (какое совпадение 🙂 пока не вернёмся в модуль regsnap.exe и оказываемся тут:

:0040687A E893DD0000 Call 00414612 <-- проверяет наличие OLE

:0040687F 85C0 test eax, eax

:00406881 751D jne 004068A0 <-- если нет таких - прыгаем на выход из проги

……………

…Поскипано…

……………

:004068BA E841DD0000 Call 00414600 <-- проверяет необходимость NAG'a

:004068BF 397D90 cmp dword ptr [ebp-70], edi

:004068C2 740C je 004068D0 <-- если не надо - перепрыгиваем его

:004068C4 397DE8 cmp dword ptr [ebp-18], edi

:004068C7 7507 jne 004068D0 <-- то же самое

:004068C9 B801000000 mov eax, 00000001

:004068CE EB02 jmp 004068D2 <-- а если надо - то прыгаем на наг

Здесь предлагаю вместо

je 004068D0

написать

jmp 004068D0

чтобы сразу перепрыгивать NAG и он нас больше не мучал 🙂

Осталось разобраться с напоминающим окном «Trial Period»…

3) после

:004068C2 jmp 004068D0

скролим то тех пор, пока не появится окно напоминания, это произойдёт в этом месте:

:00406D5D E856D20000 Call 00413FB8 <-- вызываем напоминающее окно

:00406D62 83F801 cmp eax, 00000001 <-- смотрим: какую кнопку ты нажал

:00406D65 7449 je 00406DB0 <-- если это кнопка "Try" - прыгаем

здесь я поменял Call 00413FB8 на jmp 00406DB0, т.е. без вызова окна напоминания дал понять программе, что нажата кнопка «Try». Теперь больше не будет этого окна-напоминания и при старте будет сразу открываться главное окно!

Последние штрихи…

4) Это необязательная, но самая приятная часть исследования — уберём все признаки незарегистрированности, т.е. надписи типа «This soft UnRgIsTred»

Я зашёл в WDasm’e в String Reference и нашёл там строку «Registred to %S» кликнул на неё и оказался тут:

:00404616 6818E34100 push 0041E318

:0040461B 56 push esi

поднялся чуть выше , вот сюда:

* Referenced by a CALL at Addresses:

|:0040148F , :004051DD , :004113F7

|

:004045D0 A188044200 mov eax, dword ptr [00420488]

:004045D5 81EC00010000 sub esp, 00000100

:004045DB 85C0 test eax, eax <-- проверяеи зарегистрированны ли мы

:004045DD 56 push esi

:004045DE 7452 je 00404632 <-- если нет - прыгаем

:004045E0 8BB42408010000 mov esi, dword ptr [esp 00000108]

:004045E7 85F6 test esi, esi

:004045E9 743A je 00404625 <-- если нет - прыгаем

:004045EB 83C01D add eax, 0000001D

здесь я вместо mov eax, dword ptr [00420488] написал ret ( с тем соображением, что программа выйдет из процедуры присваивания имени ни с чем и будет надпись «Registred to: » и всё), но оказалось ещё круче: Появилась надпись «Registred to: Vitas Ramanchauskas» а в окне «О программе» как я и предполагал Вместо надписи «Registred to» ничего нет.

//Можно написать вместо ret что-то типа mov eax,eax

//тогда адрес строки с именем будет случайный, а т.к. программа проверяет

//имя владельца лицензии после каждой операции, то наше имя будет меняться

//каждый раз, причем имя будет иметь вид «№;%№;%№;%»№;%%::ВАПп» Прикольно!!!

Осталось ещё убрать надпись «Trial» внизу программы: ищем эту надпись в HEX-редакторе и затираем её пробелами или например «fuck».

ВсЁ!

Ну и как всегда, готовый Крак:

————вырезать тут————

RegSnap v 2.8 Crack by vallkor//PTDS

REmoves All Nag’s and limits!!!

regsnap.exe

00006856: 3B B8

00006857: C7 01

00006858: 75 00

00006859: 20 00

0000685A: 6A 00

0000685B: FF EB

0000685C: 57 1D

000068C2: 74 EB

00006D5D: E8 EB

00006D5E: 56 51

000045D0: A1 C3

0001E4B8: 54 46

0001E4B9: 72 75

0001E4BA: 69 63

0001E4BB: 61 6B

0001E4BC: 6C 20

————вырезать тут————

Как всегда, с вами беседовал

vallkor //PTDS

e-mail: vallkor@chat.ru

page: http://vallkor.chat.ru

{/codecitation}

Добавить комментарий