What is BoxedApp SDK?
BoxedApp SDK is a developer library that provides a set of functions for emulating a file system and a system registry for an application. Using these functions, you can create virtual files, fake registry entries, keys and values. You can launch processes from memory directly, use ActiveX without registration, embed runtimes like .Net, Flash and VC++ redistributable.
Supports both x86 and x64 platforms.
Samples for C++, Delphi, VB6, C#, VB.Net are available.
Why and when is it useful?
- When an application must run properly even if it doesn't have the right to write to the system registry and to the file system.
- When an application uses DLL and files, which are to be kept secure, and because of that you can't save them to disk.
- When an application needs ActiveX but doesn't have an installer because it must run instantly, without the installation (for example, when it's a portable application that runs from a flash card).
Just a quick example: suppose, your application uses a Flash ActiveX player to display a Flash movie or video. The end users would need a Flash player ActiveX to allow your application work properly. Also, keep in mind that Flash player is not capable of loading files directly from memory. That exposes two major problems: first, you would have to install a Flash player ActiveX, and second, you would have to have the movie in a file. BoxedApp SDK solves these problems: you simply create a virtual file that contains the flash movie, another virtual file that contains the Flash player ActiveX DLL, and virtual registry entries that point to that virtual file. That's it. Now the application "thinks" that that the Flash player ActiveX is actually installed, so the Flash player works just as if the movie file was actually there.
In other words, you can now embed all DLL and content files, all ActiveX and OCX components, which your application uses, into a single EXE file. BoxedApp SDK doesn't unpack these files to disk; it doesn't use temporary files either.
Would like to see BoxedApp SDK in action?
Creating Virtual Files
Here's an example of how to create a virtual file:
Creating Virtual Registry Keys
Here's an example of how to create a virtual registry entry:
API for intercepting functions
To create a virtual file system / registry, BoxedApp SDK (this, by the way, is exactly what applications created with BoxedApp Packer use) uses the interception of system functions technique. A number of original ideas have allowed us to create an interception system compatible with any environment, and now the part of SDK that is in charge of the interception has become accessible to developers - SDK users.
Here's an example of how to disable creating and opening the file named "1.txt":
Delphi version of the same idea:
Here's an example of how to embed a DLL and use it:
Embedding ActiveX / OCX
Here's an example of how to embed an ActiveX into application (of course, it works not only with Flash ActiveX):
Launching a virtual file-based process
Having created a virtual file with an embedded exe, you can launch a process upon that file: