Latest version of Stunnix VBS-Obfus

Latest version of Stunnix VBS-Obfus is 5.3. If you wish to be notified of new versions of Stunnix VBS-Obfus as soon as they are released, you can signup for Stunnix Newsletter.

New features in version 5.3
Released on December 13th, 2017

  • GUI: big improvements in GUI.
  • Various minor improvements have been made.

New features in version 5.2
Released on April 25th, 2016

  • Now it's possible to tell obfuscator to replace some strings containing name of single symbol with a string containing mangled version of that symbol, using --quoted-symbol-names command line option. GUI support for this option has been added too (new screen was introduced: Symbols ⇒ Edit strings that contains symbol names). This removes the need to wrap such strings into call of OBJNAME function.
  • Now it's possible to preserve specified number of topmost comments (they usually contain copyright notices) in each file (use "--preserved-top-comments-count" command line option or corresponding setting in GUI).
  • GUI: Now GUI allows to query list of absent, autoadded and missing files in Settings ⇒ For files; also on that page now it's possible to remove from the project all files that are absent in filesystem.
  • GUI: Now GUI can be run by several users on the same computer at the same time.
  • GUI: Now all symbol-editing screens in Symbols menu save symbols without leaving the screen. Added button for adding symbols extracted from directory with source files into Symbols ⇒ Edit user-specified exceptions in one click.
  • GUI: Added Build ⇒ Clear output & state files & rebuild all menu item. Now menu items Build ⇒ Rebuild * and test are visible only if testing command is defined.
  • Usage guides have been rewritten, they are much more clear now.
  • GUI: Small improvements in GUI.
  • Various minor improvements have been made.

New features in version 5.1
Released on March 22nd, 2016

  • GUI: Fixed problems with starting Project Manager GUI on computers with Windows 10.
  • GUI: Added ability to generate aliases for command line tools by installing wrappers via Tools ⇒ Configure command line tools... Use it to install aliases to obfuscator and other command line tools to any directory. It's recommended to install aliases to a directory, listed in your PATH environment variable - this way you won't have to specify path to command line tools when invoking them.
  • Added option twopasses to shortest symbol mangler. It allows to protect entire project in one invokation of the obfuscator (i.e. you won't need to invoke obfusctor two times, first in "counting symbols" mode, and then in "obfuscating" mode). It makes using the product from command line much easier when you need to produce as short version of the code as possible.
  • GUI: Generated buildscripts can now be queried for files that are neither registered in the project nor were auto-added to the project.
  • GUI: Tools ⇒ Command line builder now shows the command line on the same page, preserving current state of the form.
  • GUI: Small improvements in GUI.
  • Various minor improvements have been made.

New features in version 5.0
Released on February 22nd, 2016

  • combs mangler for symbol names now won't have any hash collisions at all. In previous versions of the product, hash collisions forced user to change the seed and rebuild the project.
  • Added bin/ script to extract symbols from directory, doing same as Tools ⇒ "Extract symbols from directory with source files" does.
  • Added lib/ - a script to generate buildscript from .op file. It's useful when .op files are kept in git.
  • Added lib/ - a script to copy settings for some mode from one .op file to another .op file.
  • GUI: All structures in .op files and buildscript files have their keys sorted. This reduces number of changes between different versions of .op file, very useful if they are stored in git.
  • GUI: Now it's possible to use environment variables in paths for Project's Input, Output and State directories (use it like this: $ENV{PROJECTSDIR}/project214/in).
  • GUI: Added function for generating .bat version of buildscripts.
  • GUI: A lot of improvements in GUI, especially in build results window.
  • GUI: Now it's really possible to specify names of files with exceptions via mode settings.
  • GUI: Now it can handle projects with even hundreds of thousands of files without any issues (Windows command line length limits no more apply).
  • GUI: Generated buildscripts can now be queried for files missing in the project and for files that were autoadded to the project (using new command line switches).
  • Various minor improvements have been made.

New features in version 4.9
Released on October 13th, 2015

  • Added support for protecting Rhinoscript code (scripts for Rhinoceros 3D software) - a new type of projects has been introduced for Rhinoscript
  • Automatically load exceptions for Windows Scripting Components when protecting WSC and WSH scripts
  • Fixed support for & suffix for integers
  • [Windows] Now StartUI.exe and vbs-obfus.exe executables are provided at the top of installation tree on Windows, to make starting GUI and using product from command line easier. No installation of Perl interpreter is now required to run vbs-obfus from command line on Windows.
  • Now generated buildscripts have documentation on how to run them (path to Perl interpreter), date of generation, project title.
  • Now buildscripts allow overriding input, output and state directories from command line.
  • Added ability to specify the directory where lists of exceptions can be stored, both as option for GUI and via commandline option of buildscripts.
  • Added ability to annotate projects (by entering project's description)
  • GUI has been made more beautiful and easier to use
  • Various minor improvements have been made.

New features in version 4.8
Released on August 28, 2013

  • Various usability enhancements in Project Manager GUI
  • Updated configuration of Portable Firefox used for GUI on Windows
  • When product fails to run on 64 bit Linux, instructions are shown on how to install 32-bit libraries.
  • Other small improvements were made.

New features in version 4.7
Released on June 21, 2012

  • Greatly reduced memory consumption when processing very big source files.
  • Improved performance for projects with lots of files.
  • No warnings regarding AUTOLOAD when using modern system-wide Perl interpreter when using onfuscator directly from command line.
  • Other small improvements were made.

New features in version 4.6
Released on Nov 22, 2011

  • Added String Browser tool - available in Symbols ⇒ View strings encountered in code. That page has several tabs. One tab allows to browse all string constants that match symbols used in the project (most probably you'll have to list those symbols as exceptions). Another tab is "all strings containing some symbol used in the project" (e.g. strings used in evaluate() calls). Third tab is "strings looking like symbol". Forth tab is "all strings".

    Introduction of such tool greatly simplifies adapting project for obfuscation.

  • Directories with metadata from Git, Subversion and Mercurial are now being ignored when creating projects or browsing directories. You won't have to list those directories as ignored anymore!
  • Now GUI does not fail to start on Windows when name of user account has international characters in it (this problem was caused by Portable Firefox bundled with the product).
  • Installer on Windows asks which program group to put shortcuts to. This allows to keep several versions of the product installed in the system.
  • Other small improvements were made.

New features in version 4.5
Released on May 30, 2011

  • File selection and directory selection now works in GUI on Mac.
  • Portable Firefox (used for GUI on Windows) is now unpacked to permament directory (instead of temporary directory) on first run. This prevents problems caused by use of some disk cleaning tools.
  • Other small improvements were made.

New features in version 4.4
Released on November 24, 2010

New features in version 4.3.1

Released on April 23, 2010

  • This was a bugfix release. It can be patched into non-trial using a patch for version 4.3.

New features in version 4.3
Released on April 4, 2010

  • Usability and appearance of Project Manager GUI have been improved.
  • Now Project Manager feels more like native application on Windows.
  • Project directories can be now selected using native filesystem browsers (besides entering a path into the prompt).
  • Support for Windows 7 has been improved in Project Manager.
  • Minor fixes and improvements.

New features in version 4.2
Released on November 1, 2009

  • Added new code processing mode (so-called "extractor") rawXsp - for files containing raw VBScript code without html markup around, but containing fragments of server-side language (i.e. PHP/JSP/ASP.NET/ASP).
  • Now projects on Mac OS X Leopard and Snow Leopard can be imported without problems with Project Manager.
  • Improved support for Mac OS X Snow Leopard - now Rosetta is not required to run obfuscator.
  • Project Manager GUI now does not require any TCP sockets to be connected to or listened at on Windows (no firewall alerts).
  • Minor fixes and improvements.

New features in version 4.1
Released on May 7, 2009

  • Now exceptions can be specified as "" - in this case, both "foo" and "bar" are treated as exceptions.
  • Added better handling for Const declarations.
  • Added workaround for Networking code in Mac OS X Leopard that prevented projects from being imported.
  • Added menu items to Project menu to open project's input and output directory in Finder when running on Mac OS X.
  • Minor fixes and improvements.

New features in version 4.0
Released on March 19, 2009

  • Added support for changing "skin" of Project Manager (click Tools ⇒ Change skin); "silver" skin has been introduced and became default skin (of course one can return to "red" skin at any time ).
  • Greatly improved support for protecting code inside XSL files.

New features in version 3.9
Released on February 10, 2009

  • Made compatible with Cygwin (unix emulation environment for Windows)
  • Made minor improvements to Project Manager GUI

New features in version 3.8
Released on October 8, 2008

  • Big improvements in HTML parsing
  • Greatly improved support for huge input files
  • Implemented "delimited" extractor for VBScript. Now VBScript can be protected inside file with custom structure, provided it's surrounded by any of the strings specified inside special files ("file with prefixes" and "file with suffixes"). The code can be optionally xml-decoded before protection and xml-encoded after protection.

New features in version 3.7
Released on July 7, 2008

  • Now utf byte order marker at the top of html or xml files (3 characters) is handled correctly even if converting characters to entities was enabled
  • ASP files containing #include directives can now be protected with "ENCODED: serverside VBScript" mode too.
  • Project Manager GUI now ignores case of filenames on filesystems that are not case-sensitive. So e.g. if one removes file "todo.html" from project input directory and then creates "TODO.html", Project Manager won't show file "TODO.html" as "not in the project".

New features in version 3.6
Released on April 22, 2008

  • Now package optimized for Mac OS X is available (in the form of application bundle).
  • Now patching trial into non-trial is performed using Project Manager GUI (using Tools ⇒ Upgrade into non-trial.. menu item).
  • Build Results screen of Project Manager now has shortcuts for all menu items in the Build menu - now you can rebuild the project without switching to "main" screen just to click "Rebuild changed" there.
  • Fixed minor issues with building the project in Project Manager.
  • Fixed an issue with RUNAT attribute (it was only recognized when used in lowercase due to a new features implemented in previous versions).
  • Project Manager now shows samples of output for each mode selection dialog invoked via Settings ⇒ Select preset for.. menu item.
  • Now Perl 5.10.x is also supported.

New features in version 3.5
Released on February 13, 2008

  • Project Manager got nicer look.
  • Now it's really possible to preserve case of tag names of markup.
  • Fixed severe bug with <% option explicit %> being put ahead of non-asp blocks (like SSI).
  • Now asp blocks can be inside of attribute name, like this: <a <% blah() %>ref=/>

New features in version 3.4
Released on December 17, 2007

  • Now Project Manager GUI allows to easily generate list of symbols of some API (e.g. used in the project's code). Just put the library public API definitions (or even implementation files for the public classes of the library) alone to any directory, go to Tools->Extract symbols from directory with source files and specify the name of that directory and types of symbols you wish to extract (global functions, global variables, method names etc). Then paste the list of symbols it found into Symbols->User-specified exceptions.
  • Several minor fixes and improvements in the Project Manager GUI.

New features in version 3.3
Released on October 8, 2007

  • Bugs in encoding of VBCript code have been fixed.
  • Now any type of ASP Classic page can be encoded entirely, turning any ASP page into a page with just one block of ASP code and no markup at all.
  • Bug that caused spaces on the first line in file to disappear have been fixed.
  • Project Manager GUI has been greatly improved, now it's much more intuitive to use..

New features in version 3.2
Released on September 19, 2007

  • Added support for protecting VBScript embedded into string constants of any programming language like C#, Java or C++ (i.e. in .cpp, .aspx.cs, .java files). . See more details in the overview
  • Several minor fixes and improvements in the Project Manager GUI.

New features in version 3.1
Released on June 26, 2007

  • Added option entities-percentage to HTML protection engine that specifies percentage of characters to be replaced with entities in web documents (html/asp/php) if such replacement is enabled. In previous versions, all characters were being replaced with entities if such replacement was enabled.
  • Added ability to control the case of characters used in attribute names and tag names - the characters can be lowercased, uppercased or their case can be randomized (options transform-attrnames and transform-tagnames). In previous versions, all characters were being lowercased.
  • Several minor fixes and improvements in the Project Manager GUI.

New features in version 3.0
Released on May 14, 2007

  • Added support for converting all text (except markup) and values of html tag attributes inside .html/.asp/.php/etc files into character references (e.g. "abc" gets replaced with "&#x61;&#x62;&#x63;"). Here is a sample file before that transformation:
    some text	<span class=some-class>here</span>
    		Here is a <button class=other-class name=blah>link to our site</input>
    Some text.
    Again some text.

    And here is same piece after transformation:
    &#x73;&#x6f;&#x6d;&#x65;&#x20;&#x74;&#x65;&#x78;&#x74;&#x09;<span class="&#x73;&#x6f;&#x6d;&#x65;&#x2d;&#x63;&#x6c;&#x61;&#x73;&#x73;">&#x68;&#x65;&#x72;&#x65;</span> &#x09;&#x09;&#x48;&#x65;&#x72;&#x65;&#x20;&#x69;&#x73;&#x20;&#x61;&#x20;<button class="&#x6f;&#x74;&#x68;&#x65;&#x72;&#x2d;&#x63;&#x6c;&#x61;&#x73;&#x73;" name="&#x62;&#x6c;&#x61;&#x68;">&#x6c;&#x69;&#x6e;&#x6b;&#x20;&#x74;&#x6f;&#x20;&#x6f;&#x75;&#x72;&#x20;&#x73;&#x69;&#x74;&#x65;</input> &#x53;&#x6f;&#x6d;&#x65;&#x20;&#x74;&#x65;&#x78;&#x74;&#x2e; &#x41;&#x67;&#x61;&#x69;&#x6e;&#x20;&#x73;&#x6f;&#x6d;&#x65;&#x20;&#x74;&#x65;&#x78;&#x74;&#x2e;

    As you can see, even values of attributes have been replaced with numeric character entities.
  • Improved algorithm for generation of replacement identifiers for all manglers except "md5" and "prefix" (now names are more random).
  • Improved support for scripts saved in utf8 encoding.
  • Improved language syntax support.
  • A lot of minor fixes and improvements in the Project Manager.

New features in version 2.9
Released on October 19, 2006

  • New in this version is improvement in Project Manager - now it's possible to specify rules (in form of filename patterns and corresponding processing mode) on how to handle files in the Project Directory that are not registered in the project. This allows to generate buildscript only once, and use it for frequent rebuilding of the projects in which new source files are introduced or removed very frequently.

New features in version 2.8
Released on June 27, 2006

  • Usability and minor improvements to Project Manager GUI;
  • Improvements in documentation and very minor fixes in the code;

New features in version 2.7
Released on July 19, 2005

  • "Project->Quit GUI" menuitem was added to Project Manager GUI.
  • Symbols that are extracted from html files (form field and form names, IDs of elements) are automatically added to the list of exceptions.
  • One important and several almost non-important bugs were fixed in this version.

New features in version 2.6
Released on April 29, 2005

  • Bug with handling files with something before DOCTYPE declaration was fixed (bug was introduced in version 2.5).
  • Non-standard syntax of SSI #include command - use of spaces between <!-- and '#' - is now correctly supported too.
  • Most recent version of Stunnix Perl Web Server is used now for running Project Manager GUI interface - this means improved stability of Project Manager GUI.

New features in version 2.5
Released on March 22, 2005

  • Banners and all utility scripts are inserted after DOCTYPE declaration in files containing xml or html markup.
  • Ability to remove html comments was added - see option remove-comments for asp, html and asp.NET extractors.
  • Ability to not protect any scripts at all in files containing html markup was added - see option no-code for html extractors.
  • Ability to transform comments (e.g. keep only newlines in them or replace all non-whitespace characters in them with 'x') was introduced - see commandline option --transform-comments (corresponding popup added to Project Manager of course too).
  • Now line numbers of source protected in debugging mode will match line numbers of original files (raw scripts or code in .html) - this makes it easy to locate line that caused error in original code using error message produced for protected code.
  • Now utility by default merges the symbols it extracts with symbols already listed in its output file. This can be turned off using its --do-not-merge commandline option.
  • More MSIE-specific client-side functions and objects are recognized, including ones for Filters and Transformations.
  • Now profile for protecting code (mangling engines for symbols, strings, numbers, jamming of spaces and stripping of comments) can be switched in 2 clicks using Project-}"Switch debugging/production mode for code mangling" menu item (for newly-created projects only!).
  • Each newly-created project gets two debugging modes, one (the default) tries to keep line numbers in sync with original code (by not performing jamming) and other that jams spaces everywhere.
  • Now profile for mangling spaces around html markup and removing html comments can be switched in 2 clicks using Project-}"Switch mode for mangling html markup around code" menu item affecting all files that contain html markup.
  • Each newly-created project gets modes that product encoded client-side and server-side scripts.
  • Each newly-created project gets modes that allow to mangle html files without protecting scripts in them and/or extracting identifiers of html client-side or server-side objects.
  • Bug with extracting identifiers from html was fixed (when all previously accumulated identifers were lost if rebuilding only changed files or if project contained files with different modes of extraction of identifiers (e.g. some file with client-side identifiers extracted, other files with only server-side ones extracted) ).
  • Display of autoextracted identifiers was fixed in Project Manager.
  • Projects managed using Project Manager can now contain files with names starting with dot.
  • Project Manager now allows to rename a member of project in its metadata (using Project-}Files menuitem).
  • Now it's possible to specify command to invoke before building the project and a command to invoke after building the project using Project-}Options settings.
  • Assigning mode in Project-}Files now has improved GUI.
  • Status of project building operation is now shown in distinct colors in Build Log Window.
  • A lot of bugfixes in Project Manager that fixed inability to set some specific values for some options.
  • Added Frequently Asked Questions and Answers to documentation.
  • Better support for some language constructs.

New features in version 2.4
Released on February 10, 2005

  • Project Manager now allows to remove files from project that are already absent in the project input directory.
  • Now Project Manager allows to have arbitrary number of files in the project that are to be scanned for identifers of html nodes and form elements.
  • Due to improvements in Stunnix Perl Web Server Project Manager now runs more reliably on Windows computers with incorrect network settings.
  • Various bugfixes and improvements all over the code and documentation.

New features in version 2.3
Released on December 10, 2004

  • Exceptions for WMI (Windows Management Infrastructure) added, now they are automatically activated when 'wsh' profile is selected.
  • Added support for obfuscating dynamic VBScript inside "print-like" statements of almost any serverside language like ASP,JSP,PHP,C/C++,Perl or others or inside "print"-like functions of client-side VBScript.
  • Improved support for VBScript syntax for constructs undocumented in Microsoft VBScript reference. Now --keep-newlines option is always active, there is no way to turn it off.
  • Improved support for some JSP tags.
  • Servermode "multifile" now supports filelist parameter - this allows you to specify names of files to process in the dedicated file, one per line, without specifying them as commandline arguments (and commandline can become too long to be supported by the OS).
  • Now Project Manager can be used to build projects containing arbitrary huge number of files without pushing OS's limits of the maximum number of commandline arguments supported.
  • Exceptions can now be stored in files with any type of newline characters.
  • Options were reordered on the "mode options" page in Project Manager.
  • Various bugfixes and improvements all over the code and documentation.

New features in version 2.2
Released on July 28, 2004

  • Improved support for XHTML parsing.
  • Improved support for JSP parsing.
  • Improved support for versioned language names (as value of attribute language of script html tag).
  • Added checkbox to preserve comments in scripts to Project Manager option pages.
  • Now VBS-Obfus can be installed into the directory with name containing space characters.
  • The 'prefix' symbol name obfuscator now uses string 'ReplacementFor_' as default value of prefix instead of Z439Z_.
  • Miscellaneous fixes and improvements all over the code and documentation.
  • Trial version of VBS-Obfus is now available, there is a friendly Windows installer for a trial version.

New features in version 2.1
Released on June 4, 2004

  • Bug in support for several ASP/PHP/SSI blocks inside a script block was fixed.
  • scripts as destination of links (e.g. <a href='vbscript:some_code()'>) are now also fully supported in html.
  • Shortcut for starting Project Manager by double-clicking on MacOSX was added (/bin/startui.command).
  • Miscellaneous fixes and improvements all over the code.

New features in version 2.0
Released on April 30, 2004

  • Project Manager - an advanced intuitive cross-platform graphical user interface, that internally is implemented as dynamic web site running localy on user's computer using Stunnix Perl Web Server, was added.
  • Added ability to process several files per invokation via use of -S commandline option.
  • Added exceptions for MSIE-specific DOM implementation.
  • Added support for MSIE-specific html attributes that can contain scripts.
  • Added support for user-specified symbol mapping via -F commandline option.
  • Added support for ensuring that symbols produced by combs and md5 symbol manglers are unique across entire project via adhere-mapfile option of these symbol manglers.
  • Added ability to generate list of symbols from ActiveX and OLE components (available in Project Manager when run on Windows platform).
  • Greatly improved support for XML documents containing scripts.
  • Streamlined installation procedure by renaming 'setup' to '' - now it's possible to install the product by double-clicking on the '' instead of opening console window.
  • Miscellaneous fixes and improvements all over the code.

New features in version 1.3
Released on April 7, 2004

  • Support for scripts inside Windows Scripting Components and Windows Scripting Host files is added via profiles and extractors with names wsc and wsh; corresponding exceptions are supplied.
  • Minor improvements all over the code were made.

New features in version 1.2
Released on February 18, 2004

  • A lot of language support improvements have been introduced.
  • Exceptions for standard ASP components like AdRotator and exceptions for ADO have been added. Now it's even more easy to use shipped exceptions via the use of -O commandline option.

New features in version 1.1
Released on January 13, 2004

  • Greatly improved support for protection of client-side and server-side VBScript code inside HTML/ASP/PHP files - now it's at the state of the art level. Now HTML files in which scripts are protected can contain SSI/ASP/PHP fragments in them at any location - inside scripts (even inside string constants of the script!), inside event handlers and inside html markup (i.e. between < and >) - the feature available only in Stunnix VBS-Obfus.
  • Now it's possible to minimize size of html in HTML/ASP/PHP files by removing extra spaces and newlines in the html text itself - by the use of option pack-html for html and ASP extractors.
  • Now it's possible to mark individual <SCRIPT> sections in HTML/PHP/ASP files as not to be processed by VBS-Obfus by adding attribute with name specified using skip-script-mark-attibute option of corresponding extractor.
  • Added new engine for symbol name obfuscation that produce much more cryptic identifiers than 'md5' engine (looking like IlIIl), named 'combs'. The 'shortest' engine got similar functionality too, it can be used as a reliable version of 'combs' engine for multimodule projects.

New features in version 1.0
Released on December 9, 2003

The version 1.0 was the first public release of Stunnix VBS-Obfus.