Футбол чемпионат мира 2002 от Snowball и 1C - Пример взлома CD
|
- Люблю горячие блины! - сказал программер, вытаскивая только что записанный диск из CD Writerа.
|
Target: Футбол чемпионат мира 2002
Tools:
Вступление
Как это начиналось:
Дали мне тут гамес с привязкой и я решил его пощупать. Почему в топике я написал про 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-сектора.
|