USB + Restricted file access
-
Hi, We have some import data files which we will release along with our software which we don't want any of our client to access it , copy it, cut it, read it, etc... After searching in google, I am getting an impression that we can keep our important data in USB. This USB we will given to user along with the application. Application should be able to access the contents of USB, but our client should not be able to see anything in USB or atleast could open it. Is it possible... How to achieve this through coding... alternatively I also thought an idea of encrypting and decrypting the file... there are two issues with it.. a) Encrpting and decrypting will take more time.. b) There are chances that user may able to compy decrpyted files. Thanks in advance
If you have faith in the cause and the means and in God, the hot Sun will be cool for you.
-
Hi, We have some import data files which we will release along with our software which we don't want any of our client to access it , copy it, cut it, read it, etc... After searching in google, I am getting an impression that we can keep our important data in USB. This USB we will given to user along with the application. Application should be able to access the contents of USB, but our client should not be able to see anything in USB or atleast could open it. Is it possible... How to achieve this through coding... alternatively I also thought an idea of encrypting and decrypting the file... there are two issues with it.. a) Encrpting and decrypting will take more time.. b) There are chances that user may able to compy decrpyted files. Thanks in advance
If you have faith in the cause and the means and in God, the hot Sun will be cool for you.
-
I think, if you want something like that, you must encrypt the data in it. If you open the data using windows explorer -> it is encrypted. And in your application, you must decrypt the data to see it.
I can't do that because data is very huge... decrypting is going to take nearly 10 min... User waiting for 10 min to launch an application is not a good idea.
If you have faith in the cause and the means and in God, the hot Sun will be cool for you.
-
Hi, We have some import data files which we will release along with our software which we don't want any of our client to access it , copy it, cut it, read it, etc... After searching in google, I am getting an impression that we can keep our important data in USB. This USB we will given to user along with the application. Application should be able to access the contents of USB, but our client should not be able to see anything in USB or atleast could open it. Is it possible... How to achieve this through coding... alternatively I also thought an idea of encrypting and decrypting the file... there are two issues with it.. a) Encrpting and decrypting will take more time.. b) There are chances that user may able to compy decrpyted files. Thanks in advance
If you have faith in the cause and the means and in God, the hot Sun will be cool for you.
maybe create your own propertiary binary fileformat to store the data in, obfuscate the data in the binary file, throw in som red herrings. If you have time and resources, maybe create your own file system format (Maybe take a look at the FUSE API?), that windows isn't able to read from, and format the usb sticks to that format, have an implementation of a "yourWackyFS"-reader in your app, this probably means that you need to write a dll to access the files on your filesystem in ASM (to get the low level Red/write access you need), or a dll writen in c/c++ whit alot of inline ASM and p/invoke the dll into your C# application :wtf: . Maybe encrypt the important data in the file, and not the whole file, and decypt only the data you need when you need it? An another posibilty is at setup of your application, create a virtuel disk on the users computer, that is not visible for the user and only accessable by the proper processes, and save the file to that virtual disk. (Maybe take a look at this product: http://www.eldos.com/solfs)
modified on Wednesday, August 19, 2009 6:52 AM
-
maybe create your own propertiary binary fileformat to store the data in, obfuscate the data in the binary file, throw in som red herrings. If you have time and resources, maybe create your own file system format (Maybe take a look at the FUSE API?), that windows isn't able to read from, and format the usb sticks to that format, have an implementation of a "yourWackyFS"-reader in your app, this probably means that you need to write a dll to access the files on your filesystem in ASM (to get the low level Red/write access you need), or a dll writen in c/c++ whit alot of inline ASM and p/invoke the dll into your C# application :wtf: . Maybe encrypt the important data in the file, and not the whole file, and decypt only the data you need when you need it? An another posibilty is at setup of your application, create a virtuel disk on the users computer, that is not visible for the user and only accessable by the proper processes, and save the file to that virtual disk. (Maybe take a look at this product: http://www.eldos.com/solfs)
modified on Wednesday, August 19, 2009 6:52 AM
Case is we have ArcGIS shape and grid file... We are using map window OCX control to load and show the shape file... OCX controls wants the physical file path of the shape file to open it... I cannot change the format of the file because it is ESRI standard format... We want to protect these shape files from being copied, getting deleted... Creating virtual disk is not possible in C#
If you have faith in the cause and the means and in God, the hot Sun will be cool for you.
-
Case is we have ArcGIS shape and grid file... We are using map window OCX control to load and show the shape file... OCX controls wants the physical file path of the shape file to open it... I cannot change the format of the file because it is ESRI standard format... We want to protect these shape files from being copied, getting deleted... Creating virtual disk is not possible in C#
If you have faith in the cause and the means and in God, the hot Sun will be cool for you.
Isn't ArcGIS shape just a renamed zip-file containing a dbase database and some text files with meta data? maybe it is posible to create your own format, and recreate the zip/shape file in-memory using sharpziplib and stream the in-memory shape file to the OCX control? and then you can encrypt key data in the binary file. "Creating virtual disk is not possible in C#" - yes it is, it's just a matther of what dll's you p/invoke, and ...huhum... C:\Program Files\EldoS\SolFS\dotNET\Managed, or if eldos isn't your thing, maybe This is?
modified on Wednesday, August 19, 2009 9:52 AM
-
Isn't ArcGIS shape just a renamed zip-file containing a dbase database and some text files with meta data? maybe it is posible to create your own format, and recreate the zip/shape file in-memory using sharpziplib and stream the in-memory shape file to the OCX control? and then you can encrypt key data in the binary file. "Creating virtual disk is not possible in C#" - yes it is, it's just a matther of what dll's you p/invoke, and ...huhum... C:\Program Files\EldoS\SolFS\dotNET\Managed, or if eldos isn't your thing, maybe This is?
modified on Wednesday, August 19, 2009 9:52 AM
thanks for reply... I am using map window ocx control whose API requires fullpath of shape file to passed as paramter to be loaded.. I can't pass stream to it. Can you help me by giving the link of source code about how to create virtual drive in C# Is there any alternate way to handle it.... thanks again
If you have faith in the cause and the means and in God, the hot Sun will be cool for you.
-
thanks for reply... I am using map window ocx control whose API requires fullpath of shape file to passed as paramter to be loaded.. I can't pass stream to it. Can you help me by giving the link of source code about how to create virtual drive in C# Is there any alternate way to handle it.... thanks again
If you have faith in the cause and the means and in God, the hot Sun will be cool for you.
Here is what you are looking for Eterlogic virtual Drive SDK Quote: "Virtual Drive SDK allows you to create and manage virtual disks that appear in Windows as regular disks. Virtual disk can be located anywhere: on hard disk, network, random access memory, database etc. To do this on your own you need to develop a driver that requires deep knowledge of operating system internals, and a lot of time for debugging and testing it. Virtual Drive SDK makes possible to implement read/write operations without having to develop your own kernel driver. All necessary part of boring work is done, so you can focus on storage, encryption etc. " Quote: " * Simultaneous work with up to 8 virtual disks * Simple user mode API for kernel driver management * User application freeze/crash detection * Automatic removal of dead volumes * Read-only volumes support * Built-in formatting support * Samples for C++, C#, Delphi, Python * Special distribution mode (does not require separate SDK installation)"