Objective
Thinstall Objective
VMware ThinApp is an application virtualization solution. As with similar products from other vendors, it is able to execute applications without them being installed in the traditional sense by virtualizing resources such as environment variables, files and Windows Registry keys. The virtual environment presented to the client is a merged view of the underlying physical and virtual resources, thereby allowing the virtualization layer to fool the application into thinking that it is running as if it were fully installed. (Source: Wikipedia: VMware Thinapp )
JauntePE Objective
JauntePE is a simple utility that is designed to help you attempt to run non-portable applications in a portable manner. Its two main features are the redirection of registry modifications into a portable registry file and the redirection of special directory file system modifications into equivalent portable directories. Both of these options are available on a per-application basis, so it's possible to create completely stand-alone portable "packs" of otherwise non-portable applications. JauntePE accomplishs the "portablization" of applications through the use of the MadCodeHook dll injecting and api-hooking runtime library. (Source: 0.1.* Readme.txt)
Working principle
Thinstall working principle
Thinstall emulates and translates the Win32 API on a more selective basis to achieve its stated goals. With Thinstall the vast majority of the Win32 API passes directly to Windows with no emulation or translation.
For an example of how translation is used, when an application tries to write to the file "c:\windows\win.ini" using the CreateFile API Thinstall will translate this call into CreateFile "c:\documents and settings\username\application data\thinstall\appname\%SystemRoot%\win.ini". In this case, most of the functionality for a file system is being provided by Windows.
Thinstall also uses emulation to achieve it's goals, for example it completely emulates the Windows Loader, Windows registry, Services, COM/DCOM, and about 30 other subsystems, rather than passing API calls on to Windows. When an application tries to write to the registry using RegSetValue Thinstall emulates the behavior of the Windows registry and writes the updated registry data to a disk file under %AppData%\Thinstall\registry.rw.tvr.
(Source: Thinapp Blog>Thinstall & Wine)
JauntePE working principle
JauntePE accomplishs the "portablization" of applications through the use of the MadCodeHook dll injecting and api-hooking runtime library. This library allows JauntePE to insert its runtime dll code into the launched application's created process so that JauntePE's runtime code is executed in place of the OS code that would otherwise allow the registry and file system modifications to occur that make the application unportable. The JauntePE runtime then analyzes the requests made and either executes its own code to portablize the request or, if it determines that no unnecessary modification will be made, allows the request to be processed by the OS as normal. (Source: 0.1.* Readme.txt)
By default, once registry and file system redirection is enabled, all of the possible API functions that might be used by an application for registry and file system access are hooked by the JauntePE runtime for possible portablization.
With registry redirection turned on, by default all registry changes are redirected. So the only keys of concern are those that we don't want to have redirected into the portable registry. The portable registry will be save based on user define path in the runtime ini. For example [Registry]Data=.\Data\%appname%.reg
With file system redirection turned on, by default all special folder file system changes are redirected. User can define where these special folder will be directed for example Data=.\Data\Filesystem
(Source: 0.3.0 readme.html)
and more reading about Registry virtualization
(Source: Wikipedia: Windows Registry)Similarly, application virtualization redirects all of an application's Registry operations to a non-Registry backed location, such as a file. Used together with file virtualization, this approach allows applications to run without being installed on the location machine.
So what's your vote?