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

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


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

Исследование Badcopy Pro 3.71

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

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

Автор : TITBIT мыло: TITBIT

 Подопытный кролик BadCopy Pro v3.71 biuld 0720
Язык проги : Borland Delphi 6.0
Инструменты:WinDasm32 v8.xx-9.xx,     PEid v0.8-0.9,     SoftIce v3.xx-4.xx,     CASPR v1.1,                 EmEditor v3.xx, (для написания этой статьи)                 Hexplorer v2.12b,                 Reshacker v3.4.0.79, и холодное пиво, как без него....

ВСТУПЛЕНИЕ

Эта статья посвящена всем кто только только начинает изучения такого ТАИНСТВА как КрЭкинГ :)))))))

Здорова Пиплы!!! Вот решил написать свою первую статью о исследовании прог. Комп даст не последнею :))

О программе ...

BadCopy Pro прога для восстановления данных с поврежденных дискет, компактов, zip дисков и т.д. Как и все хорошие проги она требует плату за её использование, а точнее 39.50$. Без бабла она работает в триал режиме, т.е. файлы восстанавливает, но не сохраняет. Вообще можно в инете надыбать ключ к ней, но мы ща займемся взломом. Начнем-с...

Иследование

Сразу замечу, что это только один способ взлома проги, есть и другие. Помоему он является самым простым.
Сначала посмотрим в PEid'e запакована ли наша прога. Он показал что эта ASPack 1.02a->Alexey Solodnikov.Этот аспак распаковывается CASPR'ом. Кстате насчет CASPR'a: как известно он не имеет GUI меню, поэтому нужно использовать консоль, что по-моему неудобно. Так вот я предлагаю в папке с CASPR'ом создать при помощи Блокнота вот такой файл с содержанием:

@ECHO OFF
caspr *.exe


и сохранить его с расширением *.bat (например unpacked.bat) Теперь можно помещать в папку с CASPR'ом любой запакованый файл и нажимать на UNPACKED.BAT, и CASPR его распакует автоматически!!!

После распаковки получаем файл ==Badcopy.ex_==. Меняем название на ==Badcopy.exe== и ложем этот файл в папку ../Program Files/Juftsoft/Badcopy/. Заранее сделав копию оригинального фала *ЕХЕ*. Теперь кидаем прогу в WInDASM32, кстати советую сделать копию распакованного файла ==Badcopy.exe==. Это делаем для того, чтобы при правке байтов не нужно было бы вырубать WInDAsm32. Я например делаю так: копирую файл и вставляю его в той же папке. Ну вот теперь получив файл ==Копия BadCopy.exe== диссамблируем его с WInDasm'ом. Затем в WinDasm'е открываем SDR (вторая кнопка с конца на панеле инструментов) ищем там строчку ==SAVEFILE==. Почему эту? Все просто.. Прога восстанавливает файлы, но при попытке сохранить их выбрасывает окно о том, что мы мол бабла не платили и поэтому хер сохраним файлы. Поэтому меня и заинтересовала строка SAVEFILE. Ну вот щелкнув два раза по этой строчке мы оказываемся в коде проги:

 * Possible StringData Ref from Cоde obj ->"SaveFile"
 
 :004EE34C  BAECE94E00		mov edx, 004EE9EC
 :004EE351  E8066BF1FF		call 00404E5C
 :004ee356  0F857D010000	             jne 004EE4D9
 :004EE35C  A1BC4D5000		mov eax, dword ptr [00504DBC]
 :004EE361  803800		cmp byte ptr [eax], 00
 :004EE364  75D0		             jne 004EE373 <<<Прыжок (если JNE попадаем на окно облома, если JE прыгаем)
 :004EE366  8B45FC		mov eax, dword ptr [ebp-o4]
 :004EE369  E85E1C0000		call 004EFFCC   <<<Вызов окна "Облома" при попытке сохранить файлы>>>
 :004EE36E  E90F060000		jmp 004EE982
 
 * Reference by a (U)nconditional or (C)onditional Jump at Address:
 |:004EE364(C)
 |
 :004EE373  8D55E4	             lea  edx, dword ptr [ebp-1C]   <<<Прыгаем сюда>>>
 :004EE376  8B45FC	             mov eax, dword ptr [ebp-04]
 :004EE379  8B8098040000                mov eax, dword ptr [eax+00000498]
 :004EE37F  E8AC24F6FF		call 00450830
 :004EE384  8B45E4		mov eax, dword ptr [ebp-1C]
 :004EE387  8D55E8		lea edx, dword ptr [ebp-18]
 :004EE38A  E891ADF1FF		call 00409120
 :004EE38F  837DE800		cmp dword ptr [ebp-18], 00000000
 :004EE393  751A		             jne 004EE3AF
 :004EE395  8D55ED		lea edx, dword ptr [ebp-20]
 
 * Possible StringData Ref from Cоde obj ->"0gP"
 
 :004EE398  B81CCB4Е00		mov eax, 004ECB1C
 :004EE390  E80A8AF1FF		call 00406DAC
 :004EE3A2  8B45E0		mov eax, dword ptr [ebp-20]
 :004EE3A5  E84EBCF5FF		call 0044FF8
 :004EE3AA  E9D3050000		jmp 004EE982
 
 * Reference by a (U)nconditional or (C)onditional Jump at Address:
 |:004EE393(C)
 |
 :004EE3AF  E83CCFF1FF		call 0040B2F0
 :004EE3B4  D81DF8E94E00	             fgomp dword ptr [004EE9F8]
 :004EE3BA  DFE0		             fstsw ax
 :004EE3BC  9E			sahf
 :004EE3BD  7223		             jb 004EE3E2
 :004EE3BF  8B1578595999	             mov edx, dword ptr [00505078]
 :004EE3C5  8B12		             mov edx, dword ptr [edx]
 
 * Possible StringData Ref from Cоde obj ->"ID="
 
 :004EE3C7  B804EA4E00		mov eax, 004EEA04
 :004EE3CC  E8836CF1FF		call 00405054
 :004EE3D1  85C0		             test eax, eax
 :004EE3D3  750D		             jne 004EE3E2
 :004EE3D5  8B45FC		mov eax, dword ptr [ebp-o4]
 :004EE3D8  E8EF1B0000		call 004EFFCC <<<Еще один вызов функции окна "Облома" >>>
 :004EE3DD  E9A0050000		jmp 004EE982
 
 * Reference by a (U)nconditional or (C)onditional Jump at Address:
 |:004EE3BD(C), :004EE303(C)
 |
 :004EE3E2  66BA0500		mov dx, 0005
 :004EE3E6  A1EC918600		mov eax, dword ptr [00B691EC]
 :004EE3EB  E8C8F6FFFF		call 004EDAB8
 :004EE3F0  8D55DC		lea edx, dword ptr [ebp-24]
 
 * Possible StringData Ref from Cоde obj ->"0gP"
 
 :004EE3F3  B824CB4E00		mov eax, 004ECB24
 :004EE3F8  E8AF89F1FF		call 00406DAC
 :004EE3FD  8B55DC		mov edx, dword ptr [ebp-24]
 :004EE400  A1EC91B600		mov eax, dword ptr [00B691EC]
 :004EE405  E866F7FFFF		call 004EDB70
 
 * Possible StringData Ref from Cоde obj ->"Fine" <<<Интересная строчка!!! Видимо отсюда начинается сохранение файлов>>>
 :004EE40A  BA10EA4E00 	            mov edx, 004EEA10
 
 
Теперь думаем.. Если мы заменим в этой строчке (:004EE364) переход т.е. JNE на JE мы опять дальше попадём на второй CALL (Окно "Облома") :004EE3D8 но оно нам на хрен не нужно. Что бы избавиться от этого можно занопить CALL'ы или сделать безусловный переход в нужное нам место. Мне больше нравиться второе решение.

Итак приступим....Вот здесь :004EE364 меняем JNE 004EE373 на JMP 004EE40A. Тем самым мы пропустим окна "Oблома" и окажемся в том месте кода где видимо начинается сохранения файлов. Теперь запускаем SoftIce (далее Айс) нажав CTRL+D. Ставим прерывание для останова проги bpx getversion, поставив выходим из Айса F5 далее запускаем прогу BadCopy. Ну вот прога остановилась и мы очутились в Айсе.

Сейчас можем убрать прерывание bpx getversion командой bc * и ставим новое bpx 004EE364, тем самым мы окажемся в нужном нам месте, т.е. на переходе JNE. Теперь нам нужно переписать hex значения для последующего нахождения их в HEX редакторе. Смотрим значения напротив JNE, в моем случае это 750D8B45FC, сочитание из таких байтов в НЕХ редаторе может присутствовать несколько раз, поэтому для нахождения этих 5-и байтов я заодно переписываю и другие 803800 750D8B45FC E8. Запишем эти байты на листок, затем включаем командой а режим ассамблера и вводим с клавы jmp 004EE40A. Hex цифры изменились на 803800 Е9А1000000 Е8 запишем и эти цифры...

Далее нажмем два раза ENTER для выхода из режима ассамблера, потом вводим команду BC * для удаления прерывания и выходим из Айса F5. И вновь оказываемся в проге Badcopy и что мы видим?!!! Восстановленные файлы успешно сохранены, прога повержена!!!

Теперь осталось только открыть любым HEX редактором файл Badcopy.exe и изменить байты. Я использовал Hexplorer, кстати неплохой редактор (оформление в стиле Матрицы и многое другое). В Hexplorer'е нажав CTRL+F оказываемся в окне где вводим 803800750D8B45FCE8 и нажимаем FIND. Байты нашлись, после нажатия F3 убеждаемся что они больше не встречаются в проге. Теперь выделяем нужный нам байт грызуном и изменяем 750D8B45FC на Е9А1000000.

Сохраняем изменения File=>Save. Для проверки запускаем прогу и пытаемся восстановить файлы... Норма, файлы восстановлены. Правда еще не все, заголовок у окна проги какой-то недобитый ==EVALUATION VERSION==. Вот скажите какая это евалюшен? Эта уже не евалюшен а, не побоюсь этого слова, фул вершен :))) Открываем файл badcopy.exe в Reshacker'е и в String Table под номером 4057 находим нужную нам строчку и изменяем ее например на Cracked By TITBIT.

ЗАКЛЮЧЕНИЕ

В конце хочу заметь что программа великолепная, не раз она спасала мне файлы из (;:%;№"%; "урезано цензурой") флопиков и CD/CD-RW!!!! Но что касается зашиты, то скажу так: полная ЖОПА :))))) Вот вам наглядный пример того, как не надо делать защиту. А теперь будем ждать очередного релиза этой проги, быть может защита изменится и тогда ...

Далее хочу поделиться одной фишкой. Например нам нужно в Reshacker'е загрузить нужный нам файл, для этого мы нажимаем Open file или перетаскиваем сам файл в окно Reshacker'а что поверьте неудобно. Скопируйте этот текст в мастдайский блокнот :


 +++++++++РЕЗАТЬ ЗДЕСЬ+++++++++++++++
 REGEDIT4
 
 [HKEY_CLASSES_ROOT\dlfile\Shell\ResHACKer]
 
 //Замени слово ResHACKer на  любое слово. Оно будет отображено в контекстном меню//
 
 [HKEY_CLASSES_ROOT\dllfile\Shell\ResHACKer\command]
 
 //Здесь также замени слово ResHACKer на слово которое вписал в первой строчке//
 
 @="f:\\Crack\\Reshack\\Reshacker.exe \"%1\""
 
 //Эта строчка отвечает за расположение программы, т.е. файл лежит здесь: F:\crack\reshack\reshaker.exe//
 
 [HKEY_CLASSES_ROOT\exefile\Shell\ResHACKer]
 
 //тоже самое только для файлов с расширением *.ЕХЕ//
 
 [HKEY_CLASSES_ROOT\exefile\Shell\ResHACKer\command]
 @="f:\\Crack\\Reshack\\Reshacker.exe \"%1\""
 ++++++++++РЕЗАТЬ ЗДЕСЬ+++++++++++++++
 
изменив содержание на свое (расположение проги) сохраните его с расширением REG. Запустив полученный файл, появиться окно с вопросом, нажмите ДА. Ну вот теперь нажав правой кнопкой на *.EXE и *.DLL файлах вы увидите новую команду ResHACKer, нажав на которую вы окажитесь в Reshacker'е. Удобно, не правда ли?!

Такое можно проделать для многих прог просто замените в файле *.reg значения.

Повторяю еще раз, эта статья была предназначена для начинающий крекеров!!!

Все вопросы шлите на мыло: saniok@xxx.lt


[Дата: ++15.10.2003++]

Обсуждение статьи: Исследование Badcopy Pro 3.71 >>>


Комментарии к статье: Исследование Badcopy Pro 3.71

MadSmoker82 27.01.2005 10:42:41
Как то мне эта прога пригодилась, но кейген я забыл на работе (BadCopy Pro 3.74). Восстановление сделал, а перед сохранением (которое невозможно в eval версии), я скопировал восстановленный файл в дпугое место. Потом правда пришлось с час повозиться с перегонкой того, что прога восстановила в нормальный вид, путем заменой байтов на соответствующие (естественно не руками) и все. Так что можно и без ломки работать, только муторно. :) Так что крэк рулит.
---

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



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


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