PDA

Просмотр полной версии : Подключение файла как диска.


GrAmOzEkA
27.11.2008, 21:19
Собсно сабж, интересует вопрос как реализовать такую тему, например создается виртуальный диск который берет информацию из зашифрованного файла, расшифровывает,а дальше просто работаешь как обычно и при закрытии вся информация опять записывается в этот файл.
Например как сделано в программах:
Dekart Private Disk
Esmart CryptoDisk

P.S. Шифрование можно опустить, меня интересует как сделать само подключение файла как диска.

bons
27.11.2008, 22:38
можно запускать стандартную программу subst
она создает виртуальный диск, которому сопоставляется некий реальный путь к директории

GrAmOzEkA
27.11.2008, 22:43
можно запускать стандартную программу subst
она создает виртуальный диск, которому сопоставляется некий реальный путь к директории
я это знаю, но мне нужно не для директории, а для файла

avt0
27.11.2008, 23:40
файл в autorun.ini для этого диска и всё.

Dian
28.11.2008, 04:19
GrAmOzEkA, смотри исходники программ типа TrueCrypt
(там все именно так, даже с шифрованием)

Jim_Di
28.11.2008, 09:53
создаёшь временную папку, копируешь туда файл и потом через subst подключаешь как виртуальный диск - это самый простой и действенный способ.

bons правильно сказал.

а если надо брать инфу из файла - бери и там уж как-нибудь изворачивайся и копируй туда на время. или просто создай диск и накопируй туда.

вобщем простор для воображения есть =)

sn0w
01.12.2008, 11:39
какой смысл эмулить папку как диск и что это даст?!?!??! есть исходники memfile например - там дров который выделяет физическую оперативную память и предоставляет ее как ramdisk, да и куча всего связанного с этим, но в любом случае для реализации того что хочет топикстартер нужен драйвер.

sn0w
01.12.2008, 12:16
вот собсна пример дрова (немного не по сабжу, ибо диск в ram) http://support.microsoft.com/kb/257405/ru

Jim_Di
01.12.2008, 13:09
ну это был как вариант решения. для простого решения пойдёт.

естественно, что для крупного полноценного приложения необходим драйвер

sn0w
01.12.2008, 13:48
тут вопрос не в этом. как ты собираешься шифровать данные например? какая разница будет ли твоя программа обращаться к файлу z:\myfile.txt (после subst z: с:\work\files) или к c:\work\files\myfile.txt? да никакой. абсолютно. диск Z - это псевдодиск. И функционал у него такойже.

другое дело если мы хотим шифрование. это да. вот на примере ramdrive можно сделать и с файлом (хотя лучше готовую реализацию поискать ибо еб*тня с пнп и ирп несколько другая + реализация шифрования и собсна самого интерфейса)

тогда вот драйвер создает например c:\vdisk.dat где хранится в шифрованном варианте дерево и сами файлы, а сам драйвер представляет промежуточные интерфейсы - для чтения\записи через виртуальный диск. Например, создаем файл на виртуальном диске и пишем в него: CreateFile("v:\\hello.txt"), WriteFile("hello im here!")
Произойдет следующее: система обратится к драйверу файловой системы в итоге, но перед этим естественно по symlink будет вызван наш промежуточный драйвер который будет еще одним драйвером файловой системы но уже виртуального диска. И именно он будет шифровать и расшифровывать "на лету"

опенсорс по сабжу http://www.truecrypt.org/

Jim_Di
01.12.2008, 21:36
хм, ну если опенсорс тогда почему бы и нет. не думал что просто есть открытое по в этой области

th13fnano
08.12.2008, 20:13
true crypt - софт с раздела Must have!