Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Подключение файла как диска. (https://forum.antichat.xyz/showthread.php?t=93836)

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/


Время: 09:51