Сейчас на форуме: _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+9 невидимых)

 eXeL@B —› Основной форум —› Отучение игры от диска
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 23 июня 2005 16:53
· Личное сообщение · #1

Вообщем-то разобрался, что нужно делать.
Но как снять проверку этих функций - немного проблематично:

GetVolumeInformationA, GetFreeSpaceA, CreateFileA, GetFileAttributesA и т.д.

Буду благодарен за любую инфу.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 23 июня 2005 17:03
· Личное сообщение · #2

Что значит снять проверку? Нет ничего конкретного в вопросе. Где линк на прогу? Мануалы что ли почитай.



Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 23 июня 2005 17:10
· Личное сообщение · #3

Archer

К примеру игра Morrowind v1.2.0722

Но мне интересно разобраться как работают перечисленные проверки
и как их снять?




Ранг: 420.3 (мудрец)
Активность: 0.240
Статус: Участник

Создано: 23 июня 2005 17:15
· Личное сообщение · #4

DesTraKtoR, еще раз...
Archer пишет:
Что значит снять проверку? Нет ничего конкретного в вопросе. Где линк на прогу? Мануалы что ли почитай


Ты не задаешь ничего конкретно, поэтому ответом может служить: "Читай статьи".
Ссылка Статьи вверху странички...

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться




Ранг: 1.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 23 июня 2005 17:46
· Личное сообщение · #5

ValdiS

Статей по отучению от сд в разделе Статьи не так уже и много ...

Возмем функцию GetFreeSpaceA - найти не сложно, а снять ....




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 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!




Ранг: 16.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 24 июня 2005 23:37
· Личное сообщение · #7

Как раз в 1.2 это дело идёт в отдельной большой процедуруре, которая обходится на уровень выше одним джампом и пачится то ли одним, то ли двумя байтами - это для пиратки само собой, а вот в 1.5.x...



Ранг: 16.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 24 июня 2005 23:38
· Личное сообщение · #8

2Jupiter
Как раз не факт что неудачной - частая проверка Createfile для установщика скажем наоборот, всё зависит от флагов и имени само собой.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 26 июня 2005 16:55
· Личное сообщение · #9

John Freeman
Как раз не факт что неудачной - частая проверка Createfile для установщика скажем наоборот, всё зависит от флагов и имени само собой.
не понял, при чём здесь установщик?
я говорил о конкретном применении в игре с целью определить наличие компакта с игрой
ты думаешь, что создание нового файла на штампованом диске с игрой должно увенчаться успехом?
разумеется, что всё завсит от флагов и имени!
если ты вызываешь CreateFile с флагом OPEN_EXISTING - это одно, а если CREATE_NEW или CREATE_ALWAYS - это совсем другое! точно так же, как и вызов GetFileAttributes может говорить о разном?
но к чему в очередной раз говорить, что всё зависит от условий и упоминать какой-то установщик, когда условия явно оговорены - проверка диска с игрой?!

-----
EnJoy!




Ранг: 228.7 (наставник), 2thx
Активность: 0.120
Статус: Участник
malware research

Создано: 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 —› Основной форум —› Отучение игры от диска
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати