Disoriented Labs >> FreeExtractor

FreeExtractor Source Code

For the latest version or the most up-to-date source code, visit http://www.disoriented.com.

 

How to build FreeExtractor

To build, you will need UPX (the Universal Packer for Executables) and bin2h.exe in your path. They are included in the utils/ directory. Copy them to your System directory (system32 on NT/2000) before you build.

By default, you will also need Microsoft's HTML Help Developers Kit and/or the Platform SDK to get the latest versions of HTMLHelp.h and HTMLHelp.lib. If having access to HTML Help within the Wizard isn't important to you, you can #define NO_HTML_HELP at the top of FECommon.h, not link against HTMLHelp.lib, and compile without it.

Open FreeExtractor.dsw with Visual Studio, and do a batch build for all four release projects.

 

Miscellaneous Notes

Header.exe is the self-extractor header. FEWizard.exe is the wizard that authors use to create self extractors. MakeSFX.exe is the command line version of FEWizard. GetVersion is a little (internal) utility we use for the build process.

FreeExtractor was written in Win32 C with Microsoft Visual C++ 6. We haven't tried building it under any other environment / compiler.

Icon.h and stub.h are dynamically generated by bin2h.exe after header.exe is built. They are not missing from the source code distribution.

 

Revision History / Change Log

 

How FreeExtractor Works


The principle behind all self-extractors is that binary data can be appended to a Windows portable executable. At run time, the SFX reads the variables and Zip file embedded within itself. The format of a FreeExtractor-created archive looks like:

------------------------------------------------------------------------------
|   header.exe   |  metadata  |    Zip File    |   Authenticode Information  |
------------------------------------------------------------------------------
(not to scale)


header.exe                 - The executable stub
metadata                   - Information about this self-extracting archive
Zip File                   - The Zip file.
Authenticode Information   - (Optional) Digital signature information

You can open a self-extractor in any hex editor and get a better idea of how FreeExtractor works.

 

License

(This license is borrowed from zLib.)

This software is provided 'as-is', without any express or implied warranty. In no event will the author(s) be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

3. This notice may not be removed or altered from any source distribution.

Code Copyright (C) 2000 Andrew Fawcett (andrewfawcett@users.sourceforge.net)

 

Acknowledgements

FreeExtractor contains portions of (or derivatives of) Mark Adler and Jean-Loup Gailly's zLib and Gilles Vollant's MiniUnzip. Thanks to them, and thanks to Ignia for web hosting.

 

Donations

The developers strive to create a flexible, user-friendly, commercial-quality application. If you find FreeExtractor useful, you are encouraged to make a small donation to help further development. A small donation of US$10 is greatly appreciated.

Thanks!

 

Contact

Please direct comments and questions to Andrew Fawcett.