Задача такая: необходимо программу, работающую только с CD-ROM запускать из каталога на диске. Как обмануть программу? Какие проверки, кроме попытки записать в этот каталог программа может проводить? Но самое главное — как проге сказать, что этот каталог и есть CD-ROM ???
Предполагаю, что каким-то образом нужно использовать API Hooking, скажем перехватить какую-нибудь функцию работающую с устройством CD-ROM, только вот какую не имею никакого представления...
Может есть какие-нибудь предположения по этому поводу, а?
Re: Как работу с CD-ROM заменить работой с диском?
Здравствуйте Толипов Денис, вы писали:
ТД>Задача такая: необходимо программу, работающую только с CD-ROM запускать из каталога на диске. Как обмануть программу? Какие проверки, кроме попытки записать в этот каталог программа может проводить? Но самое главное — как проге сказать, что этот каталог и есть CD-ROM ??? ТД>Предполагаю, что каким-то образом нужно использовать API Hooking, скажем перехватить какую-нибудь функцию работающую с устройством CD-ROM, только вот какую не имею никакого представления... ТД>Может есть какие-нибудь предположения по этому поводу, а?
По опыту общения с игрушками наиболее часто используются:
GetLogicalDriveStrings с последующим GetDriveType для нахождения КД-ПЗУ, а потом на него натравливается GetVolumeInformation.
Re: Как работу с CD-ROM заменить работой с диском?
Здравствуйте Толипов Денис, вы писали:
ТД>Задача такая: необходимо программу, работающую только с CD-ROM запускать из каталога на диске. Как обмануть программу? Какие проверки, кроме попытки записать в этот каталог программа может проводить? Но самое главное — как проге сказать, что этот каталог и есть CD-ROM ??? ТД>Предполагаю, что каким-то образом нужно использовать API Hooking, скажем перехватить какую-нибудь функцию работающую с устройством CD-ROM, только вот какую не имею никакого представления... ТД>Может есть какие-нибудь предположения по этому поводу, а?
Может кто-нибудь знает как написать програамму-эмулятор СDROM типа VirtualCD?
буду рад любому ответу
Re[2]: Как работу с CD-ROM заменить работой с диском?
Позволь поставить под сомнение необходимость создания
такой программы, так как существует куча аналогов.
Если же интересует принцип работы...
Пишется драйвер, который вместо обращения к физическому
CDROM будет читать данные из файла.
Исходники для подобных драйверов — тоже не такая уж редкость:
http://www.acc.umu.se/~bosse/filedisk.zip
Эмулирует диск — образ диска лежит в файле
(не CDROM. Чтобы переделать под CDROM,
придется дополнительно обрабатывать все IOCTL_CDROM_xxx)
Re[3]: Как работу с CD-ROM заменить работой с диском?
Здравствуйте Vovkos, вы писали:
V>Привет!
V>Позволь поставить под сомнение необходимость создания V>такой программы, так как существует куча аналогов. V>Если же интересует принцип работы... V>Пишется драйвер, который вместо обращения к физическому V>CDROM будет читать данные из файла. V>Исходники для подобных драйверов — тоже не такая уж редкость:
V>http://support.microsoft.com/support/kb/articles/Q257/4/05.ASP V>Официальный пример RAMDisk от Microsoft-а. V>Если честно, не смотрел даже... :)
V>http://www.acc.umu.se/~bosse/filedisk.zip V>Эмулирует диск — образ диска лежит в файле V>(не CDROM. Чтобы переделать под CDROM, V>придется дополнительно обрабатывать все IOCTL_CDROM_xxx)
спасибо, это оч. ценный ресурс
Re[2]: Как работу с CD-ROM заменить работой с диском?
AO>По опыту общения с игрушками наиболее часто используются: AO>GetLogicalDriveStrings с последующим GetDriveType для нахождения КД-ПЗУ, а потом на него натравливается GetVolumeInformation.
Alex, Спасибо большое за совет, как раз то, что надо! На днях доделаю прогу,скину адрес source — вдруг понадобиться... :)
Re[3]: Как работу с CD-ROM заменить работой с диском?
Cалют! Вообще говоря, просьба была подсказать, как написать программу, а не указать на целесообразность написания, ну да ладно.
Здесь: http://support.microsoft.com/support/kb/articles/Q257/4/05.ASP
прога под 2000 мастдай...
а насчет второй немного непонятно...
Всё равно спасибо за участие!!!
Re[4]: Как работу с CD-ROM заменить работой с диском?
Здравствуйте Eye, вы писали:
Eye>Cалют! Вообще говоря, просьба была подсказать, как написать программу, а не указать на целесообразность написания, ну да ладно. Eye>Здесь: Eye>http://support.microsoft.com/support/kb/articles/Q257/4/05.ASP Eye>прога под 2000 мастдай... Eye>а насчет второй немного непонятно... Eye>Всё равно спасибо за участие!!!
Немного непонятно — что именно?
Я кинул ссылки на исходники драйверов — один RAMDisk от MS — образ диска лежит
в памяти; другая ссылка — на filedisk — образ диска лежит в файле.
Первый драйвер — WDM, второй — проверено — компилится и с W2KDDK и NT4DDK.
Если необходимо написать драйвер, который и на 95 работает, то могу кинуть
по мылу RAMDisk от Вальтера Они для 95
Все эти драйвера эмулируют диск, чтобы эмулировать CDROM,
необходима соответсвующая доработка, но как каркас для
проекта или как справочный материал они подходят...
Может, непонятно — как вообще компилять и устанавливать драйвера?
Re[3]: Как работу с CD-ROM заменить работой с диском?
Здравствуйте Eye, вы писали:
AO>>По опыту общения с игрушками наиболее часто используются: AO>>GetLogicalDriveStrings с последующим GetDriveType для нахождения КД-ПЗУ, а потом на него натравливается GetVolumeInformation.
Eye>Alex, Спасибо большое за совет, как раз то, что надо! На днях доделаю прогу,скину адрес source — вдруг понадобиться... :)
тогда плиз и мне скинь
Re[5]: Как работу с CD-ROM заменить работой с диском?
V>Немного непонятно — что именно? V>Я кинул ссылки на исходники драйверов — один RAMDisk от MS — образ диска лежит V>в памяти; другая ссылка — на filedisk — образ диска лежит в файле. V>Первый драйвер — WDM, второй — проверено — компилится и с W2KDDK и NT4DDK. V>Если необходимо написать драйвер, который и на 95 работает, то могу кинуть V>по мылу RAMDisk от Вальтера Они для 95 V>Все эти драйвера эмулируют диск, чтобы эмулировать CDROM, V>необходима соответсвующая доработка, но как каркас для V>проекта или как справочный материал они подходят... V>Может, непонятно — как вообще компилять и устанавливать драйвера?
Нет, всё понятно про прогу, эмулирующую CD-ROM. Но у меня несколько другая задача — не надо создать виртуальный CD-ROM, надо программу, заставить думать, что запускаясь с диска она запускается с CD-ROM. Здесь мне очень помог первый ответ — какие конкретно функции можно перехватить, для "обмана" проги. Допишу — покажу.
Re[5]: Как работу с CD-ROM заменить работой с диском?
Здравствуйте Vovkos, вы писали:
V>Здравствуйте Eye, вы писали:
Eye>>Cалют! Вообще говоря, просьба была подсказать, как написать программу, а не указать на целесообразность написания, ну да ладно. Eye>>Здесь: Eye>>http://support.microsoft.com/support/kb/articles/Q257/4/05.ASP Eye>>прога под 2000 мастдай... Eye>>а насчет второй немного непонятно... Eye>>Всё равно спасибо за участие!!!
V>Немного непонятно — что именно? V>Я кинул ссылки на исходники драйверов — один RAMDisk от MS — образ диска лежит V>в памяти; другая ссылка — на filedisk — образ диска лежит в файле. V>Первый драйвер — WDM, второй — проверено — компилится и с W2KDDK и NT4DDK. V>Если необходимо написать драйвер, который и на 95 работает, то могу кинуть V>по мылу RAMDisk от Вальтера Они для 95 V>Все эти драйвера эмулируют диск, чтобы эмулировать CDROM, V>необходима соответсвующая доработка, но как каркас для V>проекта или как справочный материал они подходят...
V>Может, непонятно — как вообще компилять и устанавливать драйвера?
Если не особо затруднит-то как копмилять, ставить и особенно удалять
и еще пилз, драйвер для win95
Re[5]: Как работу с CD-ROM заменить работой с диском?
Здравствуйте Vovkos, вы писали:
V>Я кинул ссылки на исходники драйверов — один RAMDisk V>от MS — образ диска лежит памяти; V>другая ссылка — на filedisk — образ диска лежит в файле.
Большое спасибо за ссылочки.
Хоть я и не задавал вопрос по этому поводу,
но для меня эта тема сейчас актуальна.
V>Первый драйвер — WDM, второй — проверено — компилится и с W2KDDK и NT4DDK. V>Если необходимо написать драйвер, который и на 95 работает, то могу кинуть V>по мылу RAMDisk от Вальтера
Что-то я не нашел ссылочек на _этого_ Вальтера
(на других — предостаточно :-)
Если не сложно (читай не жалко) то кинь мне этот RamDisk
Или, что проще — ссылочку откуда взять.
Каюсь — лень заела.
Очень уж не охота всю Vxd-шку с нуля строить.
V>Может, непонятно — как вообще компилять и устанавливать драйвера?
За это — не беспокойся.
Это мы умеем.
Заранее — спасибо.
Сергей.
Re[5]: Как работу с CD-ROM заменить работой с диском?
V>Если необходимо написать драйвер, который и на 95 работает, то могу кинуть V>по мылу RAMDisk от Вальтера Они для 95
Если не затруднит пришли мне этот драйвер, plz. Очень нужно и срочно.
Спасибо.
Re[6]: Как работу с CD-ROM заменить работой с диском?
От:
Аноним
Дата:
28.09.03 10:10
Оценка:
Здравствуйте, Сергей Сергеюк, Вы писали:
СС>Здравствуйте Vovkos, вы писали:
V>>Я кинул ссылки на исходники драйверов — один RAMDisk V>>от MS — образ диска лежит памяти; V>>другая ссылка — на filedisk — образ диска лежит в файле. СС> Большое спасибо за ссылочки. СС> Хоть я и не задавал вопрос по этому поводу, СС> но для меня эта тема сейчас актуальна.
V>>Первый драйвер — WDM, второй — проверено — компилится и с W2KDDK и NT4DDK. V>>Если необходимо написать драйвер, который и на 95 работает, то могу кинуть V>>по мылу RAMDisk от Вальтера СС> Что-то я не нашел ссылочек на _этого_ Вальтера СС> (на других — предостаточно СС> Если не сложно (читай не жалко) то кинь мне этот RamDisk СС> Или, что проще — ссылочку откуда взять. СС> Каюсь — лень заела. СС> Очень уж не охота всю Vxd-шку с нуля строить.
V>>Может, непонятно — как вообще компилять и устанавливать драйвера?
Подскажите плз
скачал filedisk но откомпилировать ни как не пполучается...
DDK поставил и пути прописал так:
для инклуд файлов:
e:\ntddk\inc
e:\ntddk\inc\ddk
для либов:
e:\ntddk\libfre
e:\ntddk\libfre\i386
все равно выдается куча ошибок :"sytax error"
что я не так делал ?
если можно то ответ мылом на gegendalf<dog>perm.raid.ru
Заранее спасибо, Денис.
Re[6]: Как работу с CD-ROM заменить работой с диском?
От:
Аноним
Дата:
03.03.05 22:46
Оценка:
Здравствуйте, Eye, Вы писали:
V>>Немного непонятно — что именно? V>>Я кинул ссылки на исходники драйверов — один RAMDisk от MS — образ диска лежит V>>в памяти; другая ссылка — на filedisk — образ диска лежит в файле. V>>Первый драйвер — WDM, второй — проверено — компилится и с W2KDDK и NT4DDK. V>>Если необходимо написать драйвер, который и на 95 работает, то могу кинуть V>>по мылу RAMDisk от Вальтера Они для 95 V>>Все эти драйвера эмулируют диск, чтобы эмулировать CDROM, V>>необходима соответсвующая доработка, но как каркас для V>>проекта или как справочный материал они подходят... V>>Может, непонятно — как вообще компилять и устанавливать драйвера?
Eye>Нет, всё понятно про прогу, эмулирующую CD-ROM. Но у меня несколько другая задача — не надо создать виртуальный CD-ROM, надо программу, заставить думать, что запускаясь с диска она запускается с CD-ROM. Здесь мне очень помог первый ответ — какие конкретно функции можно перехватить, для "обмана" проги. Допишу — покажу.
Re[7]: Как работу с CD-ROM заменить работой с диском?
Чуваки, про FileDisk все понятно, про правильную обработку IOCTL_* тоже все ясно.Все верно -- обрабатывай и инициализируй и все в порядке...Виртуальный CDROM готов.Можно сказать все есть в DDK. Тоже верно. Но хотелось бы найти различия и подробности в этих процессах, а не общие слова.Если есть поподробнее инфа или (о чудо !) исходники попрошу скинуть на sblacker@rambler.ru. Или хотябы поговорить на эту тему здеся....