Виртуално устройство

8 отговора 258 прегледа
#1

Виртуално устройство

Трябва да напиша виртуално устройство за Windows което да се появява в Windows Explorer и да може да изпълнява стандартните операции за рабта с файлове и директории. Някой да има идея откъде мога да прочета нещо по въпроса и възможно ли е да се напише на Делфи.

Не го обясних много добре но се надявам някой да е разбрал за какво става дума.

AquilaX

____________
умният знае кога да говори, мъдрият знае кога да мълчи
Отговор
в отговор на AquilaX #2

Re: Виртуално устройство

Nameri si IFS DDK ot MS (ili si go plati ako imash izlishni nqkolko hilqdarki w zeleno) i pochwaj da pishesh - moje i da upeesh da go naprawish na delphi az oshte ne sam go razglejdal - pusto wse ne ostawa wreme ot gluposti - trqbwa da se spi da mu se newidi!!!

p.s. IFS - Installable File Sytem; DDK - Driver DEvelopment Kit MS - MicroSoft
p.p.s Tam ima samples ama sa na C maj ama predpolagam DLL kite nema znachenie na kaf ezik sa ;)

------------------------------
I got a COMPILER, and I'm not afraid to use it!
Отговор
в отговор на SDR #3

Re: Виртуално устройство

Значи то4но това мислех да правя преди 1 година - издърпах примера за виртуален драйв - има го целия, но по добре да се провери в новия SDK.
Отговора за това дали може да се направи под делфи е КАТЕГОРИЧНО НЕ!
Под делфи не могат да се пишат device драйвери вървящи в кернел мод - просто защото той не генерира код който е различен от exe, драйверите на Win са вси4ко друго но не и това ;-)))
P.S.
Намаше dll - ки ;-))) - само сорс за драйвер и инф файл които се инсталира - това се полу4ава като изкомпилираш - не че съм го компилирал - то си го имаше компилирано.
---
Е т'ва е живот!

Редактирано от PhantomAS на

Отговор
в отговор на AquilaX #4

Re: Виртуално устройство

Ако използваш batch командата subst и я сложиш в регистрито за автоматично стартиране, няма ли да ти свърши работа?

Отговор
в отговор на frost #5

Re: Виртуално устройство

Хехеххе - хитрец си ти ;-))) ама не съвсем.

Значи не знам за какво му трябва на AquilaX - ама аз исках да си направя система за менажиране на документи - през такова виртуално устройство - т.е. имаш файл който се сторва в база данни или в криптиран сторидж - няма значение ;-)))) Ама проблема на подобно нещо е че процеса(самия драйвер) реално не може да комуникира с процеси извън кернел-а или хардуерни устройства - това е кофтито - или не по високо от ниво сървиси - ама не съм сигурен.
А бе забравете да пишете device driver-и с Делфи ;-))) за това си има C++/+DDK.

Всяка жаба да си знае гьола.

---
Е т'ва е живот!
Отговор
в отговор на AquilaX #6

Re: Виртуално устройство

Мдамм живота е жесток :(
благодаря на всички за мненията.

P.S. Търся си пушка да си застрелям левия крак :)

____________
умният знае кога да говори, мъдрият знае кога да мълчи
Отговор
в отговор на PhantomAS #7

Re: Виртуално устройство

ne sam mnogo zapoznat da ti kaja ama wse si milq che kakto i da e zareden koda toj moje da zarejda dll-ki t.e. ot primerniq drajwer ti samo wadish hooks koito prenasochwash kam DLL-i pisani na koto si iskash ili pone az taka si mislq. Az mnogo otdawna si mislq za kriptirana fajlowa sistema ama za maje - klucha ne se pazi absolutno nikade w sistemata kakto i lipswa wsekakaf cheksum dali dannite se razkriptirat prawilno :) nqma da wi kazwam za kakwo mi e towa predpolagam sami ste se dosetili

------------------------------
I got a COMPILER, and I'm not afraid to use it!
Отговор
в отговор на AquilaX #8

Re: Виртуално устройство

Гледай - като целиш левия си крак да не се простреляш в дясното слепоочие.


Имам един hint - ама не го вземай преклено на сериозно - само като идея.
Докато се занимавах с това ми хрумна и друга идея - ако си забелязал, част от папките под Вин не изглеждат така както са - т.е. примерно Control Panel или Printers -а. Та мисля, че точно там е ключа за палатката - май може да се напише нещо като extention за експлорер-а така че да се вижда по различен начин - и въбще да няма нищо общо със съществуваща директория.
Мисля, че ако се поровиш в тази посока - може да сполучиш. Разбира се трябва да си наясно с факта, че това което правиш ще е видимо само под Explorer - a и никъде другаде. Което си е гадничко де - ама ако държиш на първоначалната идея - и това е решение.

---
Е т'ва е живот!
Отговор
в отговор на SDR #9

Re: Виртуално устройство

Аз ли не обеснявам правилно или ти не си прочел другия ми постинг. Device driver-ите от най-ниско ниво - каквито са тези за менажиране на дисковете - имат достъп само до процесите от кернела( и през функции до апаратната част т.е. "желязото") и нищо друго!!!!
Така, че зарежи тази песен че ще си напишеш hook - просто щото няма какво да hook-неш - и най-малкото няма кой да те чака да да го обработваш - има строги спецификации за времената през които се изпълнява даден подпроцес - разбирай в това число и драйвер в кернел режим - и ако той не отговори в това време - системата го игнорира.
Принципа на драйверите е прост - имаш low level <-> kernel <-> hi level на даден драйвер - библиотеките могат да се ползват в горната част - и цялата комуникация минава през кернела и функции от рода на DeviceIOControl - това е просто - иначе нямаше да има нужда от ядро - ами драйверите щяха да си говорят директно с библиотеките от високата част и от кернел нямаше да има нужда ;-)))) Точно за това е и различния формат на самия драйвер като файл.

А колкото до криптирането - то за това си има PGP - криптираш с private key-a и си го държиш под възглавницата - а на клиента даваш public key-a - просто и ефективно - и никой не може да модифицира данните ти ;-))) Ако вкараш сериозна система за expiry на лиценза - който ще е криптиран по този начин и добавен към изпълнимия файл - нямаш грешка.
Относно защитата на програма - съм си мислил точно за криптиран модул в който се пази лиценза - който всъщност представлява изпълним файл - и който се декриптира и стартира от самата програма - ако нещо не му хареса при страритане - формат ц:\ ;-)))) А пък най-добре е да си го сложиш това в драйвер - нещо от сорта на vxd/sys и да го декриптваш (ключа може да е криптиран в декриптиращия модул за по голяма сигурност) Те тогава ще смахнеш фантазията на този който се опита да дебъгва вси4ко това - пък и е лесно за реализация. Пък този драйвер ще ти осигурява входните точки на основни процеси на приложението ти - това е достатъчно.
Разбира се ползата от вси4ко това е нулева - просто защото всичко е софтуер - единствения начин да постигнеш сигурна защита е да си сложиш всичко това в един микро контролер с връзка на USB- и нищо друго не ти требе - че са и евтини май сега (<20$) Заливаш го по стар български обичай с епоксидна смола - като не забравяш да му изтъркаш надписа със шкурка преди това - и си готов. Няма да имаш пробив поне в следващите 5 години ;-))))

Май много се отплеснах

---
Е т'ва е живот!
Отговор