MarmaladeFoo: Xpackerx


XpackerX is a simple program for creating standalone executables that contain a collection of Windows files. When the created executable is run, it unpacks itself and runs a user-definable command. It runs on all flavours of Windows.

Key features include:

  • User definable command to be run on executing
  • User definable icon
  • Executable silently extracts into unique temporary folder and cleans up everything on exiting - with no user intervention.
  • Project settings for creating each application saved as an XML file
  • Can be used to create One-click deployment of script based systems (e.g. a script interpreter and a collection of libraries and scripts
  • Can create executables that only contain scripts and use an existing interpreter (python, perl, rebol etc) on the host machine.
  • Can be used to protect source code from easy examination.
  • Can pass command-line parameters to the script that is run.
  • Small overhead - can result in smaller files due to compression


An illustrative example is the to deploy a script based application. Normally it is necessary to create a zip file containing all the scripts, libraries and associated files (such as images etc). The end user has to unpack and install the files manually. Then the user has to run a batch file or shortcut to pass the script to the script interpreter. At the end unneeded files need to be deleted.

XpackerX simplifies and makes this process invisible to the end user - they simply run an executable which does all this for them.


Optional - please provide your email if you wish to be informed about any new releases.




1-Aug-2013 v0.4.1

  • Improved compatibility for generated applications, so as not to require user account elevation (UAC) by default. If required, admin execution level can be explicitly set using admin tag
  • New variable $COMMANDLINE can be used to pass command line information to a script.
  • Minor usability improvements to XML editor

9-Oct-2005 0.3.2

  • User selectable application icons for each built application.
  • Improved user interface including XML syntax highlighting for loaded project files.
  • No usage statistics are collected.
  • No mandatory splash screen in created executables
  • Various minor bug fixes.


There are various examples that are installed in the "samples" directory. These include applications built using Perl, Python and REBOL.


How does XpackerX work?

  • XpackerX creates an self-extracting packaged executable (somewhat like a self-extracting ZIP). This executable(output.exe say) can contain a copy of another executable (e.g. a script interpreter) or it can use an instance on the end-users machine (e.g. on the user's PATH). On loading the executable unpacks itself into a temporary directory and runs a predefined command - usually to pass a script to the script interpreter. On unloading, everything is cleared up to leave the system as it was found. As far as the user is concerned, they just click on an executable as they would any other.

Can I distribute programs created with XpackerX?

  • As with self-extracting zips, this usually depends on whether the executable contains other third party software (such as executables or scripts) or other media (such as text files, images etc), and what the terms are for its redistribution. If you package a third party executable (e.g. a script interpreter) or media then you need to be licensed to do this - check the license for the intended software. Alternatively - you can create executables that use an instance of another executable on the end users machine. Your executable can call that pre-existing executable instead (assuming it is in a known location or on the user's PATH). Such executables can generally be redistributed under the terms you define.

How do I create an executable?

  • First you create a XML script file defining the files to be included and the command to be run. Then you open your script file in XpackerX and compile.

Can I use XpackerX to hide my source code from viewing?

  • Yes, but only in a limited sense. Since an XpackerX application is often script-based, it is necessary to unpack the files so that they can be passed to the interpreter. However you can protect your source code from casual viewing by deleting the script file by itself immediately after it has been loaded. However, this is not strong protection against a determined hacker, since the file is unpacked temporarily in a raw form (i.e. unencrypted). Also there is no guarantee that the source code is not extractable from the created executable. However, for some applications this approach may be sufficient to prevent casual viewing of the source code.