Защита от копирования дисков

eXeL@B DVD

Материал из Справочник исследователя программ

Перейти к: навигация, поиск


Основные защиты от копирования дисков

SafeDisk, StarForce, SecuROM, Tages...

Какие существуют способы взлома защиты CD от копирования на винчестер?

Вот несколько полезных советов для начала:

1) Ставим брейкпоинт "bpx GetDriveTypeA" и запускаем игру, перед этим скопировав ее на винчестер. Функция GetDriveTypeA возвращает в eax тип указанного диска. Нас интересуют только 2 возможных возвращаемых значения:

Если указанный диск - диск винчестера, то возвращаемое значение в eax равно 3.

Если указанный диск - CD, то в eax возвратится 5.

Ниже должна будет идти проверка возвращаемого значения (типа если не "5", то значит игру скопировали, и произойдет переход на выход, либо на сообщение о том, что CD не вставлен в CD-ROM), которую надо будет изменить под свои цели.

2) Если предыдущий способ не помог, то используем брейкпоинт "bpx GetVolumeInformation". Функция GetVolumeInformation обычно используется для проверки метки диска: после вызова функции, скорее всего будет идти сравнение метки. Это надо отследить и исправить, т.е. сделать так, чтобы при любой метке игра запускалась.

3) Еще можно попробовать ставить брейкпоинты на функции GetDiskFreeSpace и GetFileAttributesA. Из названия вы можете догадаться для чего нужны эти функции. Используйте это в своих целях.

4) Игра также может делать проверку на запись файла на диск, с которого она запускается. На CD, как вы понимаете, запись не должна получиться. Если же файл запишется, значит игру запускают с винчестера. В этом случае используйте брейкпоинты на функции CreateFileA и WriteFile, чтобы найти проверку на запись.