Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Исследование 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

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay