Взлом CD-ROM (DVD-ROM)

Статья создана: , обновлена:

Вступление

Наконец, я решился на написание этой статьи, идея пришла давно, но полностью систематизировать решился только сегодня. Сегодня мы не будем рассматривать конкретного взлома. На это есть две причины:

  • У меня начал не корректно работать CD-ROM, пора менять
  • Статья получилась бы слишком длинной

В принципе вторая причина меня волнует мало, но первая встала достаточно остро.

Хотя здесь и будет в основном теоретический материал, о способах защиты от копирования с CD и методах устранения такой нехорошести, но я буду приводить и примеры игр, к сожалению, многое ломается на ходу и не обременяешь себя запоминанием, поэтому примеры игры в основном одни и те же. Принципы и методы защиты. Сейчас я постараюсь написать все, когда либо встреченные методы защиты:

  • Проверка на наличие диска
  • Проверка на метку тома
  • Проверка на наличие места
  • Проверка на наличие файла и его атрибуты
  • Проверка на запись файла
  • Другие виды проверки
  • Некоторые общие моменты

Проверка на наличие диска

Я разделяю эти проверки на два класса:

1) Функцией GetDriveTypeA

Теория: Функция GetDriveTypeA возвращает в eax тип диска по его имени Вот список возвращаемых значений.

0 -- - Невозможно определить тип

1 -- - Диск не найден

2 DRIVE_REMOVABLE - Гибкий (возможна замена)

3 DRIVE_FIXED - Жесткий (замена невозможна)

4 DRIVE_REMOTE - Сетевой диск

5 DRIVE_CDROM - CD-ROM

6 DRIVE_RAMDISK - RAM - Диск

Как часто встречается: Такая проверка стоит на абсолютном большинстве ИГР.

Методы взлома:

  • Используя Soft-Ice/TRW2000 поставить бряк на эту функцию командой bpx GetDriveTypeA и если после выхода в вызывающую программу, недалеко стоит cmp eax, 00000005, то следует 5 исправить на 3, то есть, программа будет искать не CD-ROM, а жесткий диск.
  • Дизассемблировать перейти к месту вызова функции, посмотреть, есть ли сравнение. Это несколько модернизированный вариант пункта 1.
  • На эту идею я натолкнулся в статье Vadim M. «Как отучить игры от проверки CD-ROM (на примере Hellfire)». Краткое описание: поскольку функция GetDriveTypeA вызывается из kernel32.dll будем править там, смысл, чтобы все жесткие диски в системе были бы как CD-ROM'ы, этого легко достичь переправив результат возвращаемый функцией с 3 на 5, правда это не всегда проходит.

Примеры игр: Project IGI, Deadly Dozen, and many others

2) Запись имя диска в реестр или файл

Как часто встречается: Достаточно часто

Метод взлома: Я использую такой метод, так как программа где-то сохранила имя CD-ROM, значит, если мы изменим имя, то программа откажется запускаться, даже если диск будет торчать в CD-ROM. Изменяем имя и если запускаться перестанет, то ищем с помощью RegMon и FileMon, куда программа его запрятала.

Примеры игр: Shockman (Шокмэн), записывала в файл WINDOWSfacked.ini

Проверка на метку тома

Теория: Метка тома проверяется с помощи функции GetVolumeInformation, если эта функция вызывается, то почти однозначный вывод проверка метки тома. Функция очень часто используется с категорией 1.

Как часто встречается: Очень часто

Методы взлома:

  • Используя Soft-Ice/TRW2000 поставить бряк на эту функцию командой bpx GetVolumeInformation. После этой процедуры скорее всего идет процедура сравнения правильной метки с вашей. После процедуры переправить переход.
  • Дизассемблировать перейти к месту вызова функции, посмотреть, есть ли сравнение и так далее. Это несколько модернизированный вариант пункта 1.
  • Если категорию 1 вы уже правили. Посмотреть метку тома на компакт диске, и установить такую же на любом жестком диске.
  • Если категорию 1 не правили. Берем любой свой компакт с длинной метки тома меньшей, либо равной длине метки на ломаемом компакте. Ищем в исполняемых файлах программы, настоящую метку и заменяем ее нашей. Вывод если Вы вставляете свой компакт, игра думает, что это ее родной.

Примеры игр: Deadly Dozen

Проверка на наличие места

Теория: Наличие свободного места на диске проверяется функцией GetDiskFreeSpace. Функция вызывается для того, чтобы проверить что это за диск, ведь на CD-ROM свободного места нет.

Как часто встречается: Бывает

Методы взлома: Аналогичны методам 1 и 2 из 1 и 2 категории, только на другую функцию.

Примеры игр: Была какая-то, но не помню названия.

Проверка на наличие файла и его атрибуты

Теория: Один из распространившихся в последнее время приемчиков, часто это используется для проверки видео. Которое не копируется на HDD. В основном используются такие функции:

GetFileAttributesA - Проверка атрибутов файла. ReadFile - Чтение файла

Getsize_ - Получение размера файла. FindFirstFile - Поиск файла.

Как часто встречается: Иногда

Метод взлома: Я использую такой метод, запускаем FileMon. Затем запускаем игру, со вставленным компактом. Потом сразу же выходим и смотрим, к каким файлам шло обращение. Если файлы не большие можно скопировать их на ЖД, если есть большие видео, то их можно заменить любыми другими видеомагнитофонами маленького размера. В других случая придется править переходы. Если используются все эти функции придется попотеть.

Примеры игр: Project IGI, в этой игре были два файла по 1 байту, я их скопировал на диск C: в корневой, изменил после GetDriveTypeA сравнение и все.

Проверка на запись файла

Теория: Для этого используются функции WriteFile и GetLastError. Одна для записи файла другая для проверки ошибки, если они стоят подряд, то это явно она.

Как часто встречается: Ни разу не встречал

Метод взлома: Чуть-чуть исправленный метод из предыдущей категории.

Примеры игр: Я же сказал: «Не встречал!»

Другие виды проверки

Теория: Бывают и другие сильно замусоленные проверки

Как часто встречается: На дисках компании «Русобит»

Метод взлома: Почитайте статьи ASMax'a на reversing.net

Примеры игр: Казаки, Star Force.

Некоторые общие моменты

Часто в играх проверки объединены в одну общую процедуру. И удалив ее, программа начинает работать.

Практически всегда программа защищена совокупностью защит, которые здесь представлены в разных категориях.

Статья не претендует на всеобщность, поэтому я не могу предугадать ходы разработчиков. Статья открыта для дополнения, если у Вас есть какие нибудь ценные мысли по этому поводу, шлите на мыло.

Все ругательства отправлять в null

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

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

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

Дополнительная информация по теме

Таблица PageRank (PR)

Таблица PR коэффициентов для вычисления будущего Google PR страниц на собственном сайте, удобное и легкое представления и формула расчета

Мини-CMS (Master-W)

Мини-CMS (Master-W) установка, специализация и описание технических особенностей и характеристик

Предложение ORDER BY

Правила и методы использования предложения ORDER BY в базах данных на различных платформах

Предложение GROUP BY

Некоторые правила и методы использования предложения GROUP BY в базах данных на различных платформах

Ссылка для обмена:

Ссылка для форума:

Ссылка для сайта:

Есть вопросы, замечания, дополнения? Пишите в комментариях.
Заказать тексты для сайта (онлайн форма) - цена от 60 рублей, срок 24 часа
взлом, св-rom, диск

Страница: Взлом CD-ROM (DVD-ROM)

Дата публикации: 2011-06-17 12:43. Последние изменения: 2016-10-17 05:23

наверх