- Oct 30, 2000
- 42,589
- 5
- 0
Scenario:
I have a paranoid client that wants to have a program that can only be run if a security dongle is in place.
Should the dongle be removed while program is running; the program must terminate.
The program itself is unable to be modified; dynamically created by a third party utility.
I can scramble the initial program so it can not be read unless the dongle is in place.
My thoughts are:
I need to create a file in memory - simple enough.
Unscramble the application - simple enough.
Launch the unscrambled application from memory. - Help here ( I think that it is possible).
Win32 API CreateProcess requires a path to the executable, not a handle to a file.
Option 1:
Figure out a way, using the APIs, to create/access a file in mamory that I can actually treat as a file with a path.
Option 2:
Get some utility out in the world that allows me to create a RAM drive dynamically.
Copy the file to it and using CreateProcess, launch it from the dynamic RAM drive.
I do not want to have to modify a user's system to create a "static" RAM drive or install additional S/W.
Option 3:
????
I have a paranoid client that wants to have a program that can only be run if a security dongle is in place.
Should the dongle be removed while program is running; the program must terminate.
The program itself is unable to be modified; dynamically created by a third party utility.
I can scramble the initial program so it can not be read unless the dongle is in place.
My thoughts are:
I need to create a file in memory - simple enough.
Unscramble the application - simple enough.
Launch the unscrambled application from memory. - Help here ( I think that it is possible).
Win32 API CreateProcess requires a path to the executable, not a handle to a file.
Option 1:
Figure out a way, using the APIs, to create/access a file in mamory that I can actually treat as a file with a path.
Option 2:
Get some utility out in the world that allows me to create a RAM drive dynamically.
Copy the file to it and using CreateProcess, launch it from the dynamic RAM drive.
I do not want to have to modify a user's system to create a "static" RAM drive or install additional S/W.
Option 3:
????