скрыть

скрыть

  Форум  

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

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



Google  
 

Футбол чемпионат мира 2002 от Snowball и 1C - Пример взлома CD


Автор: Fess

- Люблю горячие блины! - сказал программер, вытаскивая только что записанный диск из CD Writerа.

Target: Футбол чемпионат мира 2002

Tools:

  • Some brains
  • Win32Dasm 8.93
  • Все, кроме мозгов, можно найти на www.exetools.com

Вступление

Как это начиналось:

Дали мне тут гамес с привязкой и я решил его пощупать. Почему в топике я написал про SnowBall и 1C? На это есть две объективные причины. Первая, я уже играл в чемпионат мира 2002 от другой фирмы и гам был другой. Вторая, игры от 1С никогда не славились своей защитой, поэтому взлом будет простым.

Начало

В каталоге, я обнаружил 3 exe файла. Проведем эксперимент, в каком же из них содержится нужная нам функция GetDriveTypeA. Запускаем любой нормальный файл-менеджер (я юзаю DosNavigator или его клоны). Нажимаем Atl-F7 пишем искать в файлы *.exe, содержащие строку GetDriveTypeA. Нашелся один файл с названием PSC2002.exe.

Суем его в Win32Dasm и ждем. Затем переходим к месту вызова этой функции и оказываемся здесь.


:004877EC 55            push ebp

* Reference To: KERNEL32.GetDriveTypeA, Ord:0104h
                                  |
:004877ED FF1558C04B00  Call dword ptr [004BC058]
:004877F3 83F805        cmp eax, 00000005
:004877F6 0F85B7000000  jne 004878B3
.......
:0048780A 50            push eax
:0048780B 55            push ebp

* Reference To: KERNEL32.GetDiskFreeSpaceExA, Ord:0101h
                                  |
:0048780C FF1590C04B00  Call dword ptr [004BC090]
:00487812 85C0          test eax, eax
:00487814 0F8499000000  je 004878B3
.......
:004878D8 5D            pop ebp
:004878D9 B001          mov al, 01
:004878DB 5B            pop ebx
:004878DC 81C434020000  add esp, 00000234
:004878E2 C3            ret

Как видно из листинга, Здесь помимо стандартной проверки на CD-ROMность, применяется проверка на наличие свободного места на диске (без сомнения в фирмах работают "продвинутые" программеры). Можно, конечно, менять переходы после них. Но я сделал более удобный и быстрый вариант. Вы без сомнения заметили выделенную строку, которая возвращает результат проверки. Т.е. стоит нам в начале процедуры (которая начинается с 4877B0) написать mov al, 1; ret, то все проблемы увянут сами собой. Так и поступим, заходим в любой hex-редактор и начиная с 487B0 пишем такие байтики B0 01 C3. Которые являются hex-представлением этих команд и все в порядке.

Запускаем... все рулит. Итак мы рульные хацкеры поломали корявую защиту. Ура нам! Ура!

Спасибо за интерес к моему творчеству!

Удачи в Reversing Engeneering!

Послесловие

Господа Авторы: защита фигня, если хотите, чтобы за прогу платили баблосы - делайте защиту лучше.

Все ругательства отправлять в null
Все остальное на lomovskih@yandex.ru

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

P.P.S. Возможно имеют место опечатки, заранее извините!

With best wishes Fess

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






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




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