скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Исследование Masker v2.3



Оформил: DeeCo
Автор: http://www.cracklab.narod.ru

Вот попалась ко мне в руки эта штуковина, которая может шифровать целые директории средствами RSA. Да так, что больше никто этих папок, кому это просто не положено, не увидит :)
Да вот досада: эта программа Триальная, срок триала всего 10 дней, ну чтож будем ломать...

Инструменты:
1) Soft-Ice for Win
2) HexEditor (Hview/Qview)

Итак, при запуске программы мы обнаруживаем большое окно, которое не ловится ни на CreateWindow, ни на ShowWindow, ни даже на EnableWindow. Наверное программка написана на VB :) Так и есть, в дирректории программки красуется файл Msvbvm50.dll
Ну чтож, соберите нервы вместе и поехали:

Скажу сразу, не для протокола, что я помучался с этой программкой довольно долго, пытался даже найти и осмыслить процедуру проверки, но когда увидел тонны VBшного кода, то содрагнулся и решил пойти другим путём:
Я пошёл влоб, т.е. ставим бряк:
bpx GetModuleFileNameA
это чтобы очутится где-то в начале программы, но не настолько чтобы очень :) Запускаем прогу, почти тут-же вываливаемся в айсе, теперь наша задача выйти (живыми) из всех DLL'ok, делается это просто: жмём F12 около 85 раз, пока не окажемся в модуле MASKER.????, т.е. где-то тут:
:004308DE 3BC3                    cmp eax, ebx
:004308E0 7D12                    jge 004308F4
:004308E2 68A0000000              push 000000A0
:004308E7 68FC2D4100              push 00412DFC
:004308EC 57                      push edi
:004308ED 50                      push eax
теперь трассируем (F10) программку в поисках таких условных переходов (jz/jnz), которые прыгали бы на длинные растояния, т.е. могли бы каким-то образом перепрыгивать процедуру создания напоминающего окна и т.д. Я нашёл первый такой переход вот тут:
:0043FAD5 85C0                    test eax, eax  <--Проверка
:0043FAD7 0F8446010000            je 0043FC23    <--Если ОК - прыгаем
:0043FADD C7458801000000          mov [ebp-78], 00000001
:0043FAE4 C7458002000000          mov [ebp-80], 00000002
как видите, этот условный переход ведёт далеко от текущего eip, здесь меняем je 0043FC23 на jmp 0043FC23 и запускаем программу, но напоминающее окно снова выскакивает, значит нужно найти ещё одну проверку, трассируем дальше программу с того места, где заменили je на jmp и очень скоро мы окажемся тут:
:0043FDA7 FF1598A24600            Call dword ptr [0046A298] <--вызываем какую-то проверку
:0043FDAD 6685DB                  test bx, bx               <--если всё ОК
:0043FDB0 0F8412020000            je 0043FFC8               <--то НЕ прыгаем
:0043FDB6 6808224600              push 00462208
:0043FDBB 68FA000000              push 000000FA
здесь нам нужно заменить je 0043FFC8 на je 0043FDB6
Т.е. даже если мы и прыгнем, то на следующую строку :)
Теперь запускаем программу и видим, что окна напоминающего нет и всё пашет как надо.

ВсЁ!

А для тех, у кого нифига не получилось, готовый крак:
------------вырещать тут----------
MASKER 2.3 crack by vallkor

All Checked :)
masker.exe
0003EED7: 0F E9
0003EED8: 84 47
0003EED9: 46 01
0003EEDA: 01 00
0003EEDC: 00 90
0003F1B0: 0F EB
0003F1B1: 84 04
0003F1B2: 12 90
0003F1B3: 02 90
0003F1B4: 00 90
0003F1B5: 00 90
------------вырещать тут----------
Исследовал и навая туториал:
vallkor //PTDS
e-mail: vallkor@chat.ru
Page: http://vallkor.chat.ru






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook