|
|
|
Виртуальная файловая система
|
|||
|---|---|---|---|
|
#18+
Привет, вопрос следующий. Есть у меня куча файлов, необходимых для работы exe-шника (ресурсы всякие, картинки и т.п.). Слепляем все файлы в один здоровый (ну с некоторой внтуренней структурой хранения). Т.е. то, что часто делают для игр, виртуальный архив. Насколько я знаю, обычно обращаются к прослойке, передавая имя файла, он находит его в этом здоровом файле, и возвращает типа Stream, с которым должны уметь работать те функции, кому файл понадобился. Ну а если не умеют??? Или эта система вводится после написания всего функционала... КАК добиться полной прозрачности, что в моем exe любое обращение к файлу перехватывается. Получается что-то вроде виртуального диска, только надо 1) уметь его монтировать по любому пути (где лежит Exe, а не буква диска) 2) другие процессы не должны видеть подмонтированное устройство подскажите, где копнуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2007, 11:36 |
|
||
|
Виртуальная файловая система
|
|||
|---|---|---|---|
|
#18+
Так. Сужаем формулировку: монтирование виртуального диска с разрешением доступа только родительскому процессу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2007, 12:42 |
|
||
|
Виртуальная файловая система
|
|||
|---|---|---|---|
|
#18+
TopSpaceТ.е. то, что часто делают для игр, виртуальный архив.Для игр часто используют storage, его конечно не спрячешь от всех, но зато все в одном флаконе, и любой не залезет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2007, 15:15 |
|
||
|
Виртуальная файловая система
|
|||
|---|---|---|---|
|
#18+
TopSpaceКАК добиться полной прозрачности, что в моем exe любое обращение к файлу перехватывается. Получается что-то вроде виртуального диска, только надо 1) уметь его монтировать по любому пути (где лежит Exe, а не буква диска) 2) другие процессы не должны видеть подмонтированное устройство подскажите, где копнуть? Обеспечить 100% полиморфизм между файловой системой и файлом ресурсов будет довольно сложно. Вам придётся создать свой vxd драйвер для cutsom file system. Эта задача слишком сложна для простой игровой разработки и избыточна. Ведь игре-то по сути нужно всего лишь 1) открыть файл ресурсов. 2) выполнить по нему несколько элементарных диковых операций типа res_fopen(...) res_fread(...), res_close(...). А прочие FileAPI операции (создание директорий, просмотр, удаление/модификация файлов, смена АСL) будут игровому проекту просто не нужны. За примерами реализаций можно обратится к опыту гигантов game-индустрии. К примеру ID Software хранит свои ресурсы в обыкновенных Zip архивах (с расширением pak). Это удобно с точки зрения транспортировки данных (большое количество мелких файлов компактно хранится). Кроме того, это в какой-то степени предохраняет хранилище от случайной корректировки или удаления файла. Это также практично с точки зрения выпуска мод-ов и аддон-ов. Файлы логов, и настроечные файлы обычно хранятся в файловой системе отдельно. Некоторые студии пытаются создавать свои собственные файловые форматы хранилищ, что в принципе создаёт трудности не столько для кракеров, но и для самого вендора. Ибо "накатить патч" на такое хранилище будет во много раз сложнее. Да и полезный эффект от такой защиты - сомнителен. Поэтому я-бы посоветовал, для начала взять какую-нибудь free-ware библиотеку архивации и подстроить её под свои нужды. Ну а если вам не дают спать амбиции и желание быть скрытным - используйте какое-нить симметричное DES-шифрование данных архива фиксированным ключиком, вбив его предварительно в самые глубины ядра программного продукта. Это надёжно защитит ресурсы от кракера типа "любопытный студент". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2007, 17:56 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34520244&tid=2028882]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 496ms |

| 0 / 0 |
