Version 34 of Freewrap

Updated 2006-01-07 12:45:44

by Dennis LaBelle

homepage at http://freewrap.sourceforge.net/ The freewrap program turns TCL/TK scripts into single-file binary executable programs.

There are various forms of this application - from wrapping pure-tcl scripts to wrapping tk and I believe even tk + certain extensions. The pure Tcl version--freewrapTCLSH--generates an executable that's typically just over a quarter of a megabyte.


Alex [Vizantinos?] provides a recipe [L1 ] for reverse engineering a Freewrap-ped application. Dennis follows that up with a simple counter-recipe for use of a private encryption key.


Latest version (5.6) gives up source code encryption [L2 ].


MG notes on May 12th, 2005 that a v6.0 seems to be available, since the start of the year, according to the download's page. It uses Tcl 8.4.8.


See also tbcload and Freedelivery


In a world with Starpacks, mktclapp, and so on, what's the point of freeWrap? One benefit is that freeWrap builds in BLT.

MG I've been using Freewrap since before I knew Starkits existed (and possibly since before they did exist?). I've read a lot of very long pages on how to use a Starkit to make an executable of a Tcl script, which several files and utilities to download.. and then I just drag-and-drop my Tcl script onto Freewrap and my executable is made. That's why I've kept using it. Though, lately (I think since I downloaded freeWrap 6), I've found that if I edit the icons or version info of my freeWrap'd executable with Resource Hacker, as I've always done, it no longer works, which is a downside that would make me consider switching to Starkits now.'

EKB The problem came in version 6.0 of Freewrap from using UPX to compress the executable. There is now a non-UPX version of freewrap (ver. 6.1). (The following note by A/AK was rearranged w/permission to remove EKB's questions.)

A/AK If the executable's tail is a zip archive (like in freewrap), the archive's table of contents must be adjusted when the preamable's size changes.

The standard InfoZIP's zip program can do it when the -A option is given. Thus, If you've downloaded freewrap 6.1 (no UPX), you may edit its resources, then compress the executable with upx, then use zip -A to make it usable again. Alternately, if some other version of freewrap will be compressed with UPX again, you may decompress it with upx -d, edit its resources, then compress with upx, then adjust with zip -A. Either way, the steps are easy:

 upx freewrap.exe / upx -d freewrap.exe
 zip -A freewrap.exe

No more need to wait for the next version of freewrap. No more feature requests to Dennis LaBelle causing him to switch between using and not using UPX compression with each subsequent version.

Of course, if you want to recompile freewrap, uncommenting the line with UPX in its makefile will make it compressed from the very start, and commenting the line will make it uncompressed. There is no need in zip -A until you want to turn compressed freewrap into uncompressed and back again without recompiling it.

SEH 20060103 -- I've been in touch with the author of the nifty XHTML-Editor package about whether he'd be willing to make the code available; he said he'd like to, but he lost it. It's a freewrapped program. Is there a simple way to unwrap a package and thus recover the code?

RH 2006-01-04 You can just unzip the executable. In pre freewrap 6.xx there was a encryption option. If he used it then unzipping gives you the encrypted files. For decryption have a look at the sources of freewrap.

SEH 20060104 -- Neither WinZip nor gunzip will recognize the executable as a file that can be unzipped. Can you provide more explicit instructions for unzipping an executable?

LES: it is compressed with upx. But after decompression, zip utilities still refuse to recognize it.

Dennis LaBelle: 2006-01-04 I extracted the source code from the XHTML Editor application and sent it to the author today. This application was wrapped with freeWrap 4.x. I have a program (which I wrote) that can do such extractions.


Category Application