Сейчас на форуме: _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+9 невидимых) |
![]() |
eXeL@B —› Основной форум —› Отучение игры от диска |
Посл.ответ | Сообщение |
|
Создано: 23 июня 2005 16:53 · Личное сообщение · #1 |
|
Создано: 23 июня 2005 17:03 · Личное сообщение · #2 |
|
Создано: 23 июня 2005 17:10 · Личное сообщение · #3 |
|
Создано: 23 июня 2005 17:15 · Личное сообщение · #4 DesTraKtoR, еще раз... Archer пишет: Что значит снять проверку? Нет ничего конкретного в вопросе. Где линк на прогу? Мануалы что ли почитай Ты не задаешь ничего конкретно, поэтому ответом может служить: "Читай статьи". ![]() Ссылка Статьи вверху странички... ----- Сколько ни наталкивали на мысль – все равно сумел увернуться ![]() |
|
Создано: 23 июня 2005 17:46 · Личное сообщение · #5 |
|
Создано: 23 июня 2005 18:01 · Личное сообщение · #6 DesTraKtoR Но как снять проверку этих функций - немного проблематично: GetVolumeInformationA, GetFreeSpaceA, CreateFileA, GetFileAttributesA и т.д для начала рекомендуюю разобраться в том,для чего эти функции предназначены и какие значения возвращают (для этого обратись в msdn, например: msdn.microsoft.com/library/en-us/fileio/fs/getvolumeinformation.asp) разобравшись с тем, для чего вызывается та или иная функция, тебе будет проще отучить прогу от привязанности к сидюку. например, вызывая GetDriveType (http://msdn.microsoft.com/library/en-us/fileio/fs/getdrivetype.asp), прога проверяет тип диска (должен быть DRIVE_CDROM, а не DRIVE_FIXED) а сколько свободного места на сидюке? 0. на сидюке нет свободного места. для проверки этого вызывается GetFreeSpace. попытка создать файл (CreateFile) на сидюке должна быть неудачной... etc короче говоря, изучай API функции винды - будет легче. ----- EnJoy! ![]() |
|
Создано: 24 июня 2005 23:37 · Личное сообщение · #7 |
|
Создано: 24 июня 2005 23:38 · Личное сообщение · #8 |
|
Создано: 26 июня 2005 16:55 · Личное сообщение · #9 John Freeman Как раз не факт что неудачной - частая проверка Createfile для установщика скажем наоборот, всё зависит от флагов и имени само собой. не понял, при чём здесь установщик? я говорил о конкретном применении в игре с целью определить наличие компакта с игрой ты думаешь, что создание нового файла на штампованом диске с игрой должно увенчаться успехом? разумеется, что всё завсит от флагов и имени! если ты вызываешь CreateFile с флагом OPEN_EXISTING - это одно, а если CREATE_NEW или CREATE_ALWAYS - это совсем другое! точно так же, как и вызов GetFileAttributes может говорить о разном? но к чему в очередной раз говорить, что всё зависит от условий и упоминать какой-то установщик, когда условия явно оговорены - проверка диска с игрой?! ----- EnJoy! ![]() |
|
Создано: 26 июня 2005 19:10 · Личное сообщение · #10 DesTraKtoR пишет: Вообщем-то разобрался, что нужно делать. Но как снять проверку этих функций - немного проблематично: Совет для начинающего: Найди в проге функцию GetDriveTypeA после которой следует инструкция _addr1 cmp eax, 5; поставь на нее бряк (В SoftICE bpx _addr1 if eax==5), где _addr1 - адрес инструкции cmp eax, 5 далее будет условный переход: je _CheckDisk_ _NoCDRom_ или jne _NoCDRom_ _CheckDisk_ Обычно все проверки прыжка в _CheckDisk_ идут недалеко друг от друга. Самый простой способ их обойти это записать на листочек где осуществляются и где не осуществляются условные переходы c диском и без него, затем меняешь условные переходы на безусловные, а cmp eax, 5 меняешь на cmp eax, 3. Функция GetDriveTypeA возвращяет еах = 5 если диск, который она проверяет - CDRom, и еах=3 - если HDD. ----- Research is my purpose ![]() |
![]() |
eXeL@B —› Основной форум —› Отучение игры от диска |