Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Взлом программ это просто - "Электронная кулинарная книга".

Обсудить статью на форуме

Хорошая подборка видеоуроков, инструментов крэкера, книг и статей - здесь.

Автор: Fess
Дата: 08.04.2002
Тьютор: 3

-+-+-+-+-+-+-+-+-+-+ For education uses only +-+-+-+-+-+-+-+-+-+-
 Target: Электронная кулинарная книга 3.3
 
 Tools:    Some brains
           Soft-Ice v3.4
           Pe Identifier 0.7 beta
           Win32Dasm 8.93
           Caspr 1.100
           ProcDump 1.6.2
           C2C 0.06b (Compare2Crack)
           Hex-editor (QView,Hiew)
         Итак. Приступим.
         Что же меня на это побудило? Да сущий пустяк, читал я как-то о новых
 прогах на www.softodrom.ru и натолкнулся на новую версию этой проги 3.3.
 Стал скачивать не пашет, еще попробовал эффект тот же. Полез на ихний сайт
 попытался там скачать не помогло. И пока не мог скачать смотрел отзывы об
 этой проге, и там было написано. Что жалко нету кряка к ней. Ну я подумал,
 дай думаю поисследую эту прогу. Искал ее везде и нашел на сервере
 www.pcsoft.ru или www.softpc.ru не помню точно.
         Поехали...
         Первое, что надо сделать это запустить Pe Identifier (peid.exe).
 Копируем его в каталог с программой и пишем командочку peid.exe kulinar.exe.
 Так... Он нам выдает, что прога-то оказывается пакована AsProtect 1.2.
 Интересно, интересно. (Помню ломал более старую версию проги 2.1 и она не
 была запакована ничем, и номер в ней считался так: ключ делим 2DDh,
 округляем и прибавляем к полученному 1E80A4. Легко не правда-ли?
 Теперь я почувствовал, что автор поберегся...)
 Но и на AsProtect найдется управа, достаем Caspr. Он так же входит в состав
 программы UnPack. Копируем его в каталог с программой и набираем следующую
 комманду: caspr.exe kulinar.exe. После этого в каталоге на один файл стало
 больше. Х-м-м... Откуда однако? А!!!! Должно быть это и есть распакованный
 файл он называется kulinar.ex_. Хорошо, хорошо, потираем руки мы. И
 продолжаем свой нелегкий труд.
         Опять запускаем peid.exe, но уже с параметром kulinar.ex_. И видим,
 что программка, то написана на Делфях, а на них то ж и ежу понятно защитить
 путно НЕВОЗМОЖНО. На мыслю сразу приходят огромные вложенности и другая
 ерунда.
         Пришла пора запустить Soft-Ice. Запускаем прогу, переходим на вкладку
 Регистрация. И в место сер.ном. вводим 110022334455, так легче всего искать
 строку в памяти. Нажимаем Ctrl-D, вываливаемся в Soft-Ice. Пишем
 s 0 l fffffffff "1100223344". Нажимаем Enter.
 Что тут и зачем спросите вы.
 s - указывает, что это поиск.
 0 - это адрес с которого начинать искать.
 l - указывает, что дальше идет длинна.
 fffffffff - длинна области поиска данных.
 "1100223344" - строка которую мы ищем.
 
 У меня она нашлась на 80510EF2. Ставим бряк на эту область памяти.
 Ведь проге эту строчку считывать когда-нибудь надо, а?
 Это делается командой bpmb <адрес>, т.е. у меня это bpmb 80510EF2
 Ввели. Хорошо. Нажимаем кнопку "Зарегистрировать" и вываливаемя в Soft-Ice.
 Далее все просто. Нажимаем F12 не вывалимся в программу kulinar.exe, здесь
 для этого надо нажать 7 раз. Потом нажимаем на F12 еще несколько раз пока
 не увидим присвоение eax адреса в памяти (5 раз), и там будут такие строки
 (взято из Win32Dasm)
 
 :004EF314 8B8530FEFFFF            mov eax, dword ptr [ebp+FFFFFE30]
 :004EF31A 50                      push eax
 :004EF31B 8D8528FEFFFF            lea eax, dword ptr [ebp+FFFFFE28]
 :004EF321 E80286FFFF              call 004E7928
 :004EF326 FFB528FEFFFF            push dword ptr [ebp+FFFFFE28]
 :004EF32C 6868F44E00              push 004EF468
 :004EF331 8D8524FEFFFF            lea eax, dword ptr [ebp+FFFFFE24]
 :004EF337 E8006FF7FF              call 0046623C
 :004EF33C FFB524FEFFFF            push dword ptr [ebp+FFFFFE24]
 :004EF342 8D852CFEFFFF            lea eax, dword ptr [ebp+FFFFFE2C]
 :004EF348 BA03000000              mov edx, 00000003
 :004EF34D E8324CF1FF              call 00403F84
 :004EF352 8B952CFEFFFF            mov edx, dword ptr [ebp+FFFFFE2C]
 :004EF358 58                      pop eax
 :004EF359 E8764CF1FF              call 00403FD4
 :004EF35E 0F85BA000000            jne 004EF41E
 :004EF364 8B15DCBD4F00            mov edx, dword ptr [004FBDDC]
 :004EF36A 8B12                    mov edx, dword ptr [edx]
 
 После выполнения строки 4EF314 по адресу в eax будет находится адрес
 нашей строки. Строка 4EF35E сразу кажется нам подозрительной, что это
 за условный переход после выполнения процедуры? Возможно ли, что это
 процедура сравнения? И что заносится в edx и eax перед выполнением
 процедуры? Проверим!!!!
         Удаляем точку останова (бряк) на памяти командой bc *. И
 доходим нажимая F10 до строки 4EF352. Выполняем ее. Пишем команду
 d edx (показать область памяти по адресу edx). Там мы видим какую-то
 строку
 очень напоминающую серийный номер. Переписываем на мятый и валяющийся тут
  же рядом листок бумаги знававший лучшие времена. Мало ли, вдруг пригодится?
 Выполняем следующую строчку и пишем команду d eax, там как ни странно
 находится наш введенный номер. После этого у нас не остается сомнений, что
 номер верен. Проверим?!!!! Воодим куда следует и программа нас хвалит, что
 все законно и рульно. И все бы вроде бы хорошо, да вот только зачем автор
 приписал Win32Dasm в инструменты. Да-да-да именно за тем... и вам того же.
 А вообще-то, решия я сбацать keygen давно хотел. А бацать мы его будет
 не на чем нибудь, а сделаем из этой же программы. Дизассмемблирем его.
 Что? Не получается? А попробуйте так. Запустите ProcDump выберите PeEditor
 Выберите распакованный файл. Нажмите кнопку Sections. На самой верхней
 секции нажмите правой кнопкой мыши и выберите Edit section, в поле
 Characteristics введите вместо C0000040 строку E0000020. Кому интересно
 почему так, а не иначе обращайтесь к стандарту PE файлов. Теперь можете
 дизассемблировать.
         Я тут подумал и решил сделать вывод номера функцией MessageBoxA
 Формат команды такой
 MessageBoxA(идентификатор окна, заголовок,текст,атрибуты)
 
 Т.е. наш текст на асме будет выглядеть так
 push 0 ; идентификатор окна
 push edx ;заголовок - где edx адрес правильного номера
 push edx ;текст - где edx адрес правильного номера
 push 0 ; аттрибуты стандартные
 call MessageBoxA ;Вызов процедуры генерации окна
 
         Т.к. я не догнал как вызвать MessageBoxA в уже скомпилированной проге
 решил вызвать какой-нибудь из уже существующих с нашмими параметрами.
 Я решил взять по адресу 40C26F. Т.е. введем push'и и прыгнем jump'ом.
  Писать будем начиная 4EF358 программу все равно запорем. Теперь
 переименовываем файл kulinar.ex_, который мы распаковали и дисассемблировали
 в kulcrk.exe. Копируем сюда же qview. Набираем в командной строке:
 qview kulcrk.exe. Нажимаем Enter, вошли. Т.к. у Delphi реальные
 адреса в программе не совпадают с виртуальными (в памяти), то придется
 искать по сигнатуре. Т.е. ищем сначала такую строку E8324CF1FF8B952CFEFFFF
 для этого переходим в режим дизассемблера два раза F4. И в режим 32 бит.
 F2 один раз. Такая строка встречается 1 раз по адресу EE758 приглядывамся,
 это она и есть значит здесь 4EF358=EE758. Теперь ищем Call MessageBoxA,
 если подумать, то его можно узнать выразив из разницы значений 4EF358-EE758=
 400C00, значит если в памяти MessageBox находится по адресу 40C26F значит
 реально он находится 40C26F - 400C00 = B66f. Теперь с адреса EE758, нажав Tab начинаем писать :
 
 push 0
 push edx
 push edx
 push 0
 jmp B66f
 
 
 Теперь если все написали, сохраняем и запускаем этот файл. По идее, если
 все делали правильно, то при вводе неправильного или правильного номера,
 появляется окно, в котором правильный номер будет написан. Переписываем его.
 Запускаем нормальный файл, вводим правильный номер и РУЛЛЛЕЗЗЗ!!!!!
 
         Все кончено, программа сломана без особых ухищрений. На последок могу
 только сказать товарищи программисты не будьте так наивны.
 
 
   Все просто ибо бытие состоит из простых вещей, и в нереальности невозможно
 отличить простое от сложного.
   Компьютер бесценен, ибо есть критерии по которым его оценить нельзя!
 
                                                         Автор: Fess
 
 
 
 
Все ругательства отправлять в null
Все остальное на lomovskih@yandex.ru


P.S. Запомните все материалы публикуются только в учебных целях и автор за их использование ответственности не несет!!
P.P.S. Возможно имеют место опечатки, заранее извините!


With best wishes Fess

И да пребудет с вами великий дух bad-сектора.



Обсуждение статьи: Взлом программ это просто - "Электронная кулинарная книга". >>>


Материалы находятся на сайте https://exelab.ru



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS