Итак, возьмем подопытный
quake.exe и сохраним копию этого ценного
экземпляра в папку temp на всякий случай. Это
поможет, если ваши корявые ручонки сделают
что-нибудь не так 🙂 Берем W32DSM89 и открываем в
нем наш Квак. В списке импортированных
функций doubleclick по GetDriveTypeA. Смотрим:

А вот и оно! Прога
сравнивает значение из какого-то eax и число
000000000000000000000000005. Для тех, у кого мозги после
вчерашнего вечера не варят, объясняю:
Функция GetDriveTypeA возвращает в регистр eax тип
носителя. Если CD, то 05. Слово cmp не
ругательное, а сравнительное. Если операнды
(какое умное слово то вспомнил!) равны, то
асмо делает ZF равным True. Jne (Jump on not equal)–
прыжок если они не равны. Т.е. когда ему чего-то
не нравится Он берет и выходит, а когда все
хорошо то входит 🙂 Если мы поменяем Jne на Je,
то все будет на оборот, и когда вы не
вставите диск…

Перейдем от слов к делу.
Запишем на лбу у сестры коды команд, стоящих
до и после Jne. Откроем шестнадцатеричный
редактор (у меня HexWorkShop), найдем нужную
строку и изменим 7548 на 7448, т.е. Jne на Je,
сохраняясь, выходим. Лезем в Quake и любуемся
полученным.
А если у вас ничего не получилось, винчестер
сам отформатировался, мышь не работает, то я
не виноват. Надо было учить Assembler.
Вот вроде и все. Пишите письма.

Оставить мнение

Check Also

Как сделать игру. Выбираем движок и пишем клон тех самых «танчиков»

С каждым днем игры становятся все сложнее и навороченнее. Быть инди, а точнее соло-разрабо…