Электронная библиотека
Хакер
Xakep, номер #005, стр. 005-070-2
Ищи "геройского" разработчика - New World Computing. Он там есть. Заползай в его директорию, пошарься в ней... Вскоре тебе на глаза попадается строка CDDrive "D:\". То есть прямо указан путь к твоему компакту! Поганенько ухмыляясь, меняем "D:\" на "С:\".
Ты закрываешь rededit.exe и, топопясь, запускаешь "Героев"... облом. Опять игра грязно занудствует, что сидюка не видит, и без него идти не хочет.
Ладно, давай мыслить логически. Как игра определяет, ее это диск или нет? Она может: 1 - проверять метку диска; 2 - проверять наличие определенных файлов; 3 - проверять, что на него ничего нельзя записать; 4 - что системная функция Windows (Win32 API) сообщает о том, что указанное устройство - CD-ROM. Деваться некуда, начинаем пробовать по порядку.
3. Посмотри, какая метка диска у компакта с игрой. Такую же метку сделай у диска <С:> (пуск/выполнить, label c: Heroes3). Запускай игру. Гм. Ну что ж, отчаиваться не с чего, перейдем к следующему пункту.
4. Наличие каких файлов может проверять игра? Ежу понятно: тех, где записаны данные, которые она читает непосредственно с компакта. Смотрим компакт. На удивление, круглый. Теперь смотрим его содержимое. В директории Heroes3 находится поддиректория Data, в которой два файла: Heroes3.snd и Heroes3.vid. Ага. Копируем всю директорию Heroes3 с компакта в корень диска
Что, не помещаются файлы на твоем диске
5. Но и все же, и все же... 400 мегов - это ни в какие ворота не лезет. Как бы от них избавиться? Точнее, от него. От здоровенного файла Heroes3.vid, который нам "не нравится". Попробуй, сотри его. И запусти игру. Опять она талдычет, что отсутствует CD. Так-с... ну, давай еще разок помыслим логически. Игра может проверять наличие файла, его содержимое, длину и атрибуты. Погнали по порядку.
6. Открой любой текстовый редактор и запиши пустой файл под именем Heroes3.vid туда, откуда ты его стер. Запускай игру. Заставки опять нет, но игра не говорит, что не нашла CD! Ну вот и опаньки.
Итак, после всех экспериментов на винте у тебя осталась директория Heroes3 размером 9 мегабайт и проинсталлированная игра размером 200 мегабайт. Можешь попробовать изменить метку диска C: на прежнюю - выяснится, что игра все равно идет "нормально". Значит, она проверяет только наличие файлов. Хочешь сам что-нибудь сделать - поколдуй над сравнительно маленьким файлом Heroes3.snd...