Latest version of Stunnix JavaScript Obfuscator
Latest version of Stunnix JavaScript Obfuscator is 5.8. If you wish to be notified of new versions of Stunnix JavaScript Obfuscator as soon as they are released, you can signup for Stunnix Newsletter.
Stunnix JavaScript Obfuscator has been released about 10 years ago, so we keep history of its improvement here.
New features in version 5.8
Released on December 13th, 2017
- GUI: big improvements in GUI.
- Various minor improvements have been made.
New features in version 5.7
Released on August 29th, 2016
- Added improvements for 'strict' mode of JavaScript.
- Added support for ES6 template litterals (started with backticks)
- Now Typescript code (.ts files) can be protected with JS-Obfus.
- GUI: Small improvements in GUI.
- Various minor improvements have been made.
New features in version 5.6
Released on April 25th, 2016
- GUI: New Java-based tool for extracting symbols from directory with source files have been implemented. It will be used in Tools ⇒ Extract symbols from directory with source files if Java is installed on the computer. It's much more reliable at extracting names of symbols that can be mangled.
- 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).
- Improved handling of regular expressions.
- 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.
- 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.5
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.
- JSP Taglibs are now supported in JSP files.
- Encoding the code produces much smaller output (2-3 times smaller) than before.
- GUI: Small improvements in GUI.
- Various minor improvements have been made.
New features in version 5.4
Released on February 22nd, 2016
- Added new mangler for symbols: mixcase. Given a set of replacement identifiers (e.g. just one
topsecret
), it will generate new symbols by altering case of characters in them, e.g. it will replace symbols withTOpSecREt
,toPSecREt
,tOPsEcReT
and so on. 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/extract-syms-from-dir.pl
script to extract symbols from directory, doing same as Tools ⇒ "Extract symbols from directory with source files" does. - Added
lib/generate-buildscript-from-op-file.sh
- a script to generate buildscript from .op file. It's useful when .op files are kept in git. - Added
lib/copy-stunnix-project-manager-mode-props.pl
- 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 5.3
Released on October 13th, 2015
- Added presets for protecting NodeJS code
- Improved set of exceptions for client-side web scripts
- Improved support for JavaScript syntax
- Automatically load exceptions for Windows Scripting Components when protecting WSC and WSH scripts
- [Windows] Now StartUI.exe and js-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 js-obfus from command line on Windows.
- GUI has been made more beautiful and easier to use
- 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)
- Various minor improvements have been made.
New features in version 5.2
Released on September 11, 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 5.1
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 5.0
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 eval() 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.10
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.9
Released on November 24, 2010
- Now international characters are properly converted to entities in text between markup inside HTML files.
- Fixed issues in support for protection of JavaScript code only between special delimiters.
New features in version 4.8.1
Released on April 23, 2010
- This was a bugfix release. It can be patched into non-trial using a patch for version 4.8.
New features in version 4.8
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.7
Released on November 1, 2009
- Added new code processing mode (so-called "extractor") rawXsp - for files containing raw JavaScript 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.6
Released on May 18, 2009
- Now exceptions can be specified as "foo.bar" - in this case, both "foo" and "bar" are treated as exceptions.
- 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.5
Released on March 16, 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 4.4
Released on January 14, 2009
- Made compatible with Cygwin (unix emulation environment for Windows)
- Made minor improvements to Project Manager GUI
New features in version 4.3
Released on October 1, 2008
- Big improvements in HTML parsing
- Greatly improved support for huge input files
- Implemented "delimited" extractor for JavaScript. Now JavaScript 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 4.2
Released on July 1, 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
- When minifying local vars via YUI Compressor is enabled, YUI compressor does not give up on files with utf8 encoding.
- ASP files containing #include directives can now be protected with "ENCODED: serverside JavaScript" 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 4.1
Released on April 9, 2008
- GREAT NEW FEATURE Now YUI JavaScript Compressor can optionally be invoked to minimize names of local variables, while applying usual symbol name mangling for all other symbols, resulting in much more compact code. A modified version of YUI Compressor has been included with the JavaScript Obfuscator package, there is no need to download or install it.
- 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 4.0
Released on February 12, 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.9
Released on November 26, 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.8
Released on October 12, 2007
- 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.
- Project Manager GUI has been greatly improved, now it's much more intuitive to use..
New features in version 3.7
Released on September 17, 2007
- Added support for protecting JavaScript 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.6
Released on June 19, 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.5
Released on May 9, 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 "abc").
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:
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.
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 GUI.
New features in version 3.4
Released on October 10, 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 3.3
Released on July 12, 2006
- Names of MSIE-specific properties of Style object have been added to the list of reserved names for client-side web scripts;
- Usability and minor improvements to Project Manager GUI;
- Improvements in documentation and very minor fixes in the code;
New features in version 3.2
Released on May 24, 2006
- Scripts created by Visual Studio 2005 are correctly supported (unicode byte order marker is preserved).
- Scripts that use raw utf8 are correctly supported now.
- Better support for 'try' block.
- Improved support for regular expressions with modifiers.
- Now Project Manager shows 'Makefile' in the list of project's files.
- Project Manager now recognizes more file extensions as containing scripts.
- When building projects using Project Builder, file and directory permissions are copied from corresponding objects in the project input directory.
New features in version 3.1
Released on January 17, 2006
- Implemented different algorithm of encoding of JavaScript code - now code encoded with it self-decodes 100times faster than code encoded using previous versions of JS-Obfus.
- Use default browser on Windows instead of always using MSIE.
- Fixed a bug with javascript pieces as values of html attributes.
New features in version 3.0
Released on November 7, 2005
This version implements long-awaited perfect automatic statement ends detector that brings JS-Obfus to new level of quality and ease of use, thus it has got version number 3.0.
- Now JS-Obfus perfectly detects locations at which statements are terminated, and automatically inserts semicolon if it's missing, using extrernal JavaScript parser implemented in C (available for Windows, MacOSX and Linux/x86). This means that manual insertion of ";" in a few places is no more required. Use of external parser can be turned off using --skip-external-parser commandline option.
- 'm' modifier is now recognized for regular expressions.
- <asp:XXX> family of ASP.NET tags is now correctly handled in asp.net (.aspx) files.
- Added support for switching Encoding profiles to Project Manager GUI - now the options of how encoding is performed can be altered in a user-friendly way using new menu item "Project"->"Switch mode for encoding of code".
- Added 3 new choices into list of modes shown in "Project"->"Switch debugging/production mode for code mangling.." menuitem - ones that don't modify symbols at all.
- Added pre-defined mode "standard: encoded .js files with raw code" for greater convenience.
- Now GUI can run on more Windows boxes with incorrectly-implemented firewalls due to upgrade to latest version of Stunnix Perl Web Server.
New features in version 2.8
Released on September 22, 2005
- AJAX-related symbols are in default exception list now (i.e. one doesn't have to add them manually to the list of exceptions).
- When jamming spaces in code that is inside SCRIPT tag, insert newlines before and after html comment delimiters, if present.
- Support multiplie CDATA blocks inside script fragments (before, only single CDATA block was supported).
- Added some MSIE-specific symbols to default list of exceptions.
- Host-based licensing conditions assertters are turned off if document as loaded from host with IP address 127.0.0.1 or from local file.
New features in version 2.7
Released on July 14, 2005
- Support for conditional compilation found in Microsoft JScript added.
- Now it's possible to specify original file's input character encoding using --input-encoding commandline option - this makes encoding of JavaScript files containing foreign languages possible.
- A lot of JScript-specific symbols were added to the list of exceptions.
- 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.
- "Project->Quit GUI" menuitem was added to Project Manager GUI.
New features in version 2.6
Released on May 4, 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 17, 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 get-idents-from-html.pl 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 produce 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.
- Each newly-created project gets mode for obfuscation of scripts in SVG files.
- 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 14, 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 9, 2004
- Exceptions for WMI (Windows Management Infrastructure) added, now they are automatically activated when 'wsh' profile is selected.
- Added support for obfuscating dynamic JavaScript 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 JavaScript.
- 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 27, 2004
- Parsing of inline regular expressions is now consitent with that of major browsers. Because of this default value for handling of inline regular expressions is changed to 'enable' (from 'disable').
- Improved support for XHTML 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 JavaScript Obfuscator 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 JavaScript obfuscator is now available.
New features in version 2.1
Released on June 2, 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='javascript: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 'setup.pl' - now it's possible to install the product by double-clicking on the 'setup.pl' instead of opening console window.
- Miscellaneous fixes and improvements all over the code.
New features in version 1.9
Released on April 6, 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.8
Released on February 19, 2004
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.7
Released on January 7, 2004
- Greatly improved support for protection of client-side and server-side javascript 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 JavaScript Obfuscator.
- 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/ASP/ASP.NET extractors.
- Greatly extended support for ensuring licensing conditions in ASP server-side scripts - new asserters were added.
- Now it's possible to mark individual <SCRIPT> sections in HTML/PHP/ASP/ASP.NET files as not to be processed by JavaScript Obfuscator by adding attribute with name specified using skip-script-mark-attibute option of corresponding extractor.
- All commandline parameters that specify names of files with lists of symbols (like --excludeidentsfile) now can take name of the directory - in that case symbols are loaded from all files located in that directory and its subdirectories.
- 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.
- Support for specifying list of suffixes that should be preserved in mangled identifiers, specified via commandline option --suffixes-asis-list, was added.
- Support for recognition of inline regular expressions is now turned off by default, one has to explicitly enable it by using corresponding commandline option.
New features in version 1.6
Released on November 4, 2003
Support for processing JavaScript embedded inside ASP and ASP.NET files was added. These modes of operation are activated by passing -E asp or -E asp.NET switch to JavaScript Obfuscator correspondingly. A special utility - get-idents-from-html.pl to extract names and ids of form fields and other elements is also updated to treat server-side and client-side object names and ids differently.
Support for using case-insensitive exception lists was added - it is very useful for specifying properties and methods of ActiveX objects. Specify the file names to treat as case-insensitive exceptions after --excludeidentsfile-anycase switch to JavaScript Obfuscator.
The code and documentation as always undergone polishing.
New features in version 1.5
Released on November 4, 2003
Support for processing JavaScript embedded inside HTML was added. This mode of operation is activated by passing -E html switch to JavaScript Obfuscator. A special utility - get-idents-from-html.pl to extract names and ids of form fields and other elements is also included.
Support for encoding only some fragments of the source code was added. This mode of operation is activated by passing -E code switch to JavaScript Obfuscator.
The code and documentation as always undergone polishing.
New features in version 1.4
Released on October 10, 2003
Support for ECMAScript and JavaScript for .NET and JavaScript for .NET used for scripting applications was added. The language dialect supported can be chosen using newly added option -O. Encoding and support for ensuring license conditins works correctly for these environments; a lot of licensing conditions' "asserters" were added for .NET platform.
New encoding algorithm is implemented. Now decoding that happens at startup of each encoded script takes by order less time, thus making encoding more applicable for large files.
The code and documentation as always undergone polishing.
New features in version 1.3
Released on August 26, 2003
Support for ensuring that licensing conditions of the code was added. It allows to make the script automatically terminate during startup its lifetime has expired or if it's integrated into the document that came from server that is not in the set of hosts it was licensed to; also user-defined checks and actions are supported too.
Now it's possible to make the obfuscated result to be much more resistant to the analisys by using "do-nothing" licensing conditions generic asserter - the numeric constants from the original source code will be replaced with arithmetic expressions involving variables that are initialized in the additionally encoded block of code ensuring licensing conditions.
The code and documentation as always undergone polishing.
New features in version 1.2
Released on May 13, 2003
Besides generic code polishing, a new obfuscator for symbol names - shortest - was added. It turns JavaScript Obfuscator into so-called "source code compressor" tool, that can be used to minimize size of source code by renaming variables to the shortest names possible (the more used symbols are renamed to the shorter symbols).