Футбол чемпионат мира 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
Все остальное на [email protected]
P.S. Запомните все материалы публикуются только в учебных целях и автор за их использование ответственности не несет!!
P.P.S. Возможно имеют место опечатки, заранее извините!
With best wishes Fess
И да пребудет с вами великий дух bad-сектора.
Далее: Часто задаваемые вопросы по дизассемблеру IDA Pro »»