San Francisco, California
(415) 274 2558
I passed on some information on Thinstall a couple of weeksback. This
is the installation application that takes
your application and wraps it up, along with a special virtual machine,
into a single executable file. Now that version 2.5 is out, I got my
hands on a copy and started to pound on it.
My first experiment was pretty simple: I took one of my own .NET
applications that uses all sorts of cruft from the Framework, and ran it
through Thinstall. The process was dead simple: when I launched
Thinstall, it prompted me for an executable, figured out that it was a
.NET application, and asked if it should grab the appropriate parts of
the Framework. I adjusted the file list slightly (deleting some stuff
from the build folder that I didn't want to ship, adding a help file
that was stored elsewhere) and told Thinstall to go build. A while later
(the compression process is CPU-intensive and can be slow) I had a 9MB
executable. And, guess what: it worked perfectly. Not bad for something
around 40% the size of what I had ben shipping.
After the proof of concept, I started digging a bit. What I found was a
well designed and implemented system with an extensive help file. For
example, my little application writes some of its configuration data to
the registry. Defining a "virtual registry" inside of the monolithic
Thinstall virtual machine turned out to be as simple as including a
registry script listing the keys. Leaving out a key wasn't a problem
either, as the VM falls back to the real registry if need be.
Thinstall also offers a complete licensing system for the software that
you ship with it. You can create timed trials, or trials that expire
after a fixed number of uses, or licenses that expire on an absolute
date. Thinstall also has quite a number of anti-cracker features built
in, designed to do things like make the application crash if someone
tries to attach a debugger. While no such system offers absolute
security, it appears to me that the features here raise the bar more
than high enough to prevent casual hacking.
New in 2.5 is a scripting system that lets you catch application events
and modify permissions. For example, you might catch a startup or
license change event, and disable printing or cutting and pasting for
the application running inside of the Thinstall virtual machine. Couple
some scripting with an Office document and one of Microsoft's free
viewers, and you have a way to add DRM to documents with very little
overhead. There's nothing to this besides writing and including a simple
Overall, Thinstall seems to deliver quite well on its promises. It's not
the answer for all software installations (for example, if you're
building a server database to go with your application you need
something besides Thinstall), but for compressing and protecting
executables it's great. Thinstall is licensed on a per-developer basis
with no runtime charges. You can get a 14-day trial copy from their Web
site (and if you're a blogger, you can get a discount on the full
license as well).
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.