> Download Free Trial
> FAQ
> Article

Jasob just got better!
What's New in Jasob 4.2

* Mark names with regular expression.
* Updated system names.
* Fixed bug with obfuscation of arrow operator.
What's New in Jasob 4.1
* Fixed bug with obfuscation of certain CSS selectors.
* Fixed bug with saving settings for individual name occurrences in strings.
* Fixed bug with preserving a space between adjacent server side code after the obfuscation.
What's New in Jasob 4.0
* NEW! Added support for HTML 5, CSS 3, SVG, jQuery and jQuery UI.
* NEW! Exclude non-JavaScript/CSS code from obfuscation.
* NEW! Improved algorithm for obfuscated names generation.
* Fixed bug with dots and arbitrary number of backslashes in a row in file paths.

JavaScript Obfuscator

> Frequently Asked Questions

Q.   

It is not possible to change settings from the File Types dialog (Obfuscate > File Types... command from the main menu) when I already have some source files opened or a project saved. Why not? I mean, you can change it, but it does not have kind of effect!

A.   

Settings on the File Types dialog (Obfuscate > File Types... command from the main menu) are used only when a source file is initially opened with Jasob. After that, those initial settings become individual for each opened file and are saved with the Jasob project (or Web site settings). To change settings for a file which has already been opened in Jasob, right-click a file in the project files list and choose Settings... from the context menu. The File Settings dialog will appear allowing you to change file settings. This way you can have totally different settings even for the files of the same file type, which is required in some cases. If you have a Jasob project (or Web site settings) and wish to change settings for certain files, open that project (or apply Web site settings) and then right-click files you wish to change settings for in the project files list and choose Settings... from the context menu. After you have made the changes, save your Jasob project (or Web site settings) again.

Q.   

Is there a way to obfuscate files without removing white space characters to be able to find possible errors in a debugger?

A.   

Yes, you can choose whether you wish to not remove white space characters from JavaScript, CSS and non-JavaScript/CSS code (like HTML for example) for the desired file. To not remove white space characters from the obfuscated code, right-click file in the project files list and choose Settings... from the context menu. The File Settings dialog will appear where on the Client Side JavaScript and CSS Code tab you will see Remove white space in JavaScript code and Remove white space in CSS code options where you should uncheck the appropriate option. On the same dialog, but on the Other tab there is Remove white space in non-JavaScript/CSS code option which you should uncheck if you wish to not remove white space characters from the non-JavaScript/CSS code (like HTML for example).

Q.   

I am trying to use Jasob, however the approach is a bit more of a component development where all of the global variables should not be changed and all function parameter names and local variables should be obfuscated. Is it possible to do such a thing?

A.   

If you are using Jasob GUI, then after you have analyzed the files look at the Status column in name lists. It contains various information for each name. The G (Global) status flag designates whether a name is global. The G status flag is set automatically when there is at least one name occurrence found outside of any function. So, global names (variables, functions...) have G status flag, all other names are local. You can group names in a name list by G (Global) status flag by choosing Group By > Status > Global from the name list context menu and then quickly mark or unmark for obfuscation names in each group. For more information on available status flags, see Jasob User's Guide (section Analyzing Files / Starting the Analysis). When working with Jasob command-line, you can unmark for obfuscation global names by specifying the /unmarkglobal command-line parameter. For more information on command-line obfuscation, see Jasob User's Guide (section Command-Line Parameters). Also make sure you have checked the example in Jasob User's Guide on how to obfuscate a DHTML Component (section Examples / Example: How to Obfuscate a DHTML Component).

Q.   

I am using the trial version and am seriously considering buying Jasob until I came across this. Part of my JavaScript code looks like the following:

var adTitle = "[adTitle]";
var adTarget = "[adTarget]";
var leftImg = "[leftImg]";
var rightImg = "[rightImg]";
var nextPage = "hello.aspx";

Yes I want to obfuscate those variables and generate new names. The problem is that after obfuscation the obfuscated code looks like this:

var aZ="[aZ]";var ba="[ba]";var aN="[aN]";var aR="[aR]";var bf="bf.aspx";

which is dead wrong! It should look like:

var aZ="[adTitle]";var ba="[adTarget]";var aN="[leftImg]";var aR="[rightImg]";var bf="hello.aspx";

Am I using the software wrongly?

A.   

With Jasob you can control how you wish to obfuscate JavaScript strings. There are few options:

1. You can completely turn off string obfuscation for a certain file by right-clicking that file in the project files list and by choosing Settings... > Client Side JavaScript and CSS Code tab from the context menu and then make sure both Obfuscate all names in JavaScript strings that are found in JavaScript code and Obfuscate all JavaScript strings as JavaScript code options are unchecked. For more information on string obfuscation options, see Jasob User's Guide (section File Types / The Client Side JavaScript and CSS Code).

2. When you want to obfuscate strings inside the same file differently, you should use <Jasob... > elements in your source files to designate regions where strings should or shouldn't be obfuscated. For example, to solve your problem you can insert <JasobNoObfsStr> element in your source code to prevent Jasob from obfuscating strings in that region, like this:

// <JasobNoObfsStr>
var adTitle = "[adTitle]";
var adTarget = "[adTarget]";
var leftImg = "[leftImg]";
var rightImg = "[rightImg]";
var nextPage = "hello.aspx";
// </JasobNoObfsStr>

This way, only variables will be obfuscated in the specified region while strings will stay as they were in the original code. For more information on string obfuscation options and other <Jasob... > elements used with string obfuscation, see Jasob User's Guide (section File Types / The Client Side JavaScript and CSS Code).

3. You can mark or unmark for obfuscation each individual name occurrence in a string by right-clicking name in a name list and by choosing In Strings... from the name list context menu. A dialog will appear showing occurrences in strings for the selected name where you will be able to mark or unmark some (or all) of them for obfuscation.

Q.   

I'm having problems getting it to work as I expect it to. If the obfuscation process is changing the values of ID attributes in HTML documents, it should also make the same changes to all related document.getElementById("elementID") references in the associated .js files. And yet I can never get Jasob to do this. What settings do I have to make in Jasob in order to change both the values of the ID attributes in the HTML files and the values of the document.getElementById("elementID") references in the .js files?

A.   

Jasob should obfuscate values of ID attributes in the associated .js files too, just make sure JavaScript string obfuscation is turned on in Jasob. Please see answer to the previous question that deals with string obfuscation options available in Jasob, except in your case you should use those options to turn string obfuscation on. For example, to designate region in your source code where strings should be obfuscated you would use <JasobObfsStr> element instead of <JasobNoObfsStr> element which turns string obfuscation off for the designated region. For more information on string obfuscation options and other <Jasob... > elements used with string obfuscation, see Jasob User's Guide (section File Types / The Client Side JavaScript and CSS Code).

Q.   

Just wondering if Jasob supports escaping string characters to hexadecimal values? Can’t seem to find that option...

A.   

Yes, Jasob supports escaping string characters to hexadecimal values. You can actually specify for which strings inside a file you want Jasob to escape characters to hex values and the amount (percentage) of the string characters that should be escaped to hex values. For example, if you want to escape certain amount (percentage) of string characters to hex values for all strings inside a file you can right-click file in the project files list and choose Settings... > Client Side JavaScript and CSS Code tab from the context menu and make sure option Escape random characters in all JavaScript strings when saving is checked. Into the edit box to the right of this option enter the percentage of random string characters that should be escaped to hex values. If you want to escape all string characters to hex values, enter 100 into that edit box. However, most of the time you probably don't want to have the same settings for all strings in a file. In this case, you can use <JasobEscapeStr amount="..."> elements in your source files to designate regions in which string characters should be escaped to hex values by specifying different amount of random string characters that should actually be escaped. For example, to escape 50% of string characters to hex values inside the designated region in a file, the following code can be used:

// <JasobEscapeStr amount="50">
var str = "this is a test";
// </JasobEscapeStr>

Please note that after you have obfuscated your files, string characters will not appear escaped in the file viewer (the Obfuscated tab). This is due to various navigation operations that are available in Jasob GUI. String characters are replaced with their escape sequences when obfuscated files are SAVED, however, additional characters used for escape sequences are included in the statistics for a file immediately after the obfuscation has finished. For more information on escaping string characters to hexadecimal values, see Jasob User's Guide (section File Types / The Client Side JavaScript and CSS Code).

Q.   

I have a PHP file which is actually a JavaScript file with some server side PHP code included. I cannot obfuscate such PHP files properly because Jasob treats non server side code in those PHP files as the HTML code instead of the JavaScript code. Is there a solution to this issue?

A.   

Sure. This is often the case with certain PHP, ASP, ASP.NET, JSP... files. To obfuscate such files properly, right-click files in the project files list and choose Settings... > Client Side JavaScript and CSS Code tab from the context menu and make sure option Whole file is JavaScript code is checked. You may need to first uncheck In HTML elements, In ASP.NET elements, In JSP elements, In XML elements and In CFML elements options for the Whole file is JavaScript code option to become enabled.

Q.   

I have a large .js file which is linked to other ASP.NET pages. The problem is that I don't want to obfuscate all names inside a .js file since some of the JavaScript function names are used by the server side VB.NET code. Can I specify which function names should not be obfuscated in that .js file, or is there some other method to accomplish this?

A.   

There are few methods in Jasob to exclude certain names (variables or functions) from the obfuscation:

1. After you have opened and analyzed your files in Jasob and name lists are populated with names, you can simply unmark for obfuscation certain names while marking for obfuscation all other names in name lists. After you have successfully obfuscated your files you can save the changes with the Jasob project (or Web site settings). You can then also use that Jasob project (or Web site settings) when working in command-line mode by using /src: and /wss: command-line parameters. For more information on command-line obfuscation, see Jasob User's Guide (section Command-Line Parameters).

2. To maintain a list of names that have specific settings (marked or unmarked for obfuscation) you should create a names bag and then apply that names bag settings to the names in name lists. To create the names bag, choose Obfuscate > Names Bag... from the main menu and then choose Add... from the names bag context menu to add names to the names bag. Once you have created the names bag, save it to the file by choosing Save from the names bag context menu. Now when you have your names bag with specific settings for certain names, you can initially mark for obfuscation all names in name lists and then apply settings from the names bag to names in name lists. To apply settings from names in the names bag to names in name lists, choose Apply All from the names bag context menu. Alternatively, if you wish to only apply settings for some of the names in names bag, select those names from the names bag and choose Apply from the names bag context menu. For more information on the names bag, see Jasob User's Guide (section The Names Bag). When working with Jasob command-line, you can use the names bag by using the following command-line parameters: /nb: /nbset /nbget. For more information, see Jasob User's Guide (section Command-Line Parameters).

3. You can automatically mark or unmark for obfuscation (or select only) names with specific prefixes and/or suffixes by choosing Obfuscate > Mark Names With Prefixes... from the main menu. For more information, see Jasob User's Guide (section Obfuscating Files / Marking Names for Obfuscation / Marking Names with Prefixes and/or Suffixes). When working with Jasob command-line, you can mark or unmark for obfuscation names with specific prefixes and/or suffixes by using the following command-line parameters: /markprefixes: /marksuffixes: /markprefsuffcs /unmarkprefixes: /unmarksuffixes: /unmarkprefsuffcs. For more information, see Jasob User's Guide (section Command-Line Parameters).

Q.   

Is there a way I can have an exclude list of JavaScript variables and functions that will not be obfuscated?

A.   

Yes, you need to create the names bag in order to maintain a list of names with specific settings (marked or unmarked for obfuscation) and then apply that names bag settings to the names in name lists. Please see answer to the previous question for more information on the names bag.

Q.   

I want to obfuscate JavaScript code across .js files and in HTML files but don't want to obfuscate values of ID and NAME attributes in HTML documents and where those values are referred to in the JavaScript code (e.g. via document.getElementById("MyIDName") or document.MyFormName.MyFieldName). How do I exclude those from the obfuscation?

A.   

You can automatically mark or unmark for obfuscation (or select only) names that are found in certain elements and/or attributes by choosing Obfuscate > Mark Names In Elements... from the main menu. A dialog will appear where, in your case, you should enter "id name" (without quotes) into the Attributes edit box, click the Unmark names radio-button and make sure option Case sensitive comparison is unchecked. For more information, see Jasob User's Guide (section Obfuscating Files / Marking Names for Obfuscation / Marking Names in Elements and/or Attributes). When working with Jasob command-line, you can mark or unmark for obfuscation names that are found in certain elements and/or attributes by using the following command-line parameters: /markelements: /markattributes: /markelemattrcs /unmarkelements: /unmarkattributes: /unmarkelemattrcs. For more information, see Jasob User's Guide (section Command-Line Parameters).

Q.   

I don't want Jasob to process certain parts of my code. How can this be done?

A.   

To exclude parts of your code from the analysis and obfuscation you should use <JasobNoObfs>...</JasobNoObfs> elements in your files to designate such regions, like:

// <JasobNoObfs>
...
... JavaScript code that is excluded from the analysis and obfuscation
...
// </JasobNoObfs>

If you wish to also remove that code completely from the obfuscated file, use the remove attribute with <JasobNoObfs> element and set its value to true, like <JasobNoObfs remove="true">...</JasobNoObfs>. When using <JasobNoObfs> elements in your files you should make sure option Don't obfuscate JavaScript and CSS code inside <JasobNoObfs> elements is checked for a file. To access this option, right-click file in the project files list and choose Settings... > Client Side JavaScript and CSS Code tab. Beside excluding parts of the code from the analysis and obfuscation by using <JasobNoObfs> elements, you can also exclude/include the whole file by right-clicking file in the project files list and checking/unchecking the Excluded option. For a complete list of <Jasob... > elements that can be used in source files, see Jasob User's Guide (section Jasob Elements for Source Files).

Q.   

I have custom tags in my ASP.NET files, such as <asp:mycustomcomponent jsonclick="MyCustomJSFunction_OnClick"> ... </asp:mycustomcomponent> which contain JavaScript code in some attribute values. Can I obfuscate that JavaScript code also?

A.   

Yes. You have to specify which ASP.NET elements and/or attributes contain JavaScript code and then Jasob will analyze and obfuscate that content as well. To define ASP.NET elements and/or attributes that contain JavaScript code choose Obfuscate > Options... > ASP.NET tab from the main menu. Right-click the ASP.NET elements list on the Options dialog and choose Add... from the context menu. A dialog will appear where, in your case, you should enter "asp:mycustomcomponent" (without quotes) into the Elements edit box and "$serverSide='true' jsonclick" (without quotes) into the Attributes edit box and click the OK button. You should actually add all custom ASP.NET elements and/or attributes that contain JavaScript code in your ASP.NET files to the ASP.NET elements list on the Options dialog. For more information, see Jasob User's Guide (section Options / The ASP.NET).

Q.   

I use Smarty, which uses the .tpl file extension for its HTML templates. Smarty variables are placed inside {$ ... } characters and they must be left unchanged. Can I tell Jasob to treat .tpl files like HTML files?

A.   

Yes you can. You need to add Smarty file type (.tpl) to Jasob so Jasob will be able to open and process such files. To do so, choose Obfuscate > File Types... from the main menu. On the File Types dialog, click the New... button. A dialog will appear where you should enter "Smarty Files" (without quotes) into the Filter description edit box and from the Filter template combo box choose HTML Files since Smarty files are very similar to HTML files. After you click the OK button, the Smarty Files filter will be added to the File Types dialog where (for the Smarty Files filter) you should enter "*.tpl" (without quotes) into the File extensions edit box (overwriting existing text there if it exists) and make sure option Inside {$ ... } is checked on the Server Side Code tab. Click the OK button on the File Types dialog and you are now ready to open Smarty files with Jasob.

Q.   

How can I add XUL files to Jasob, is it possible at all? I've managed to add a file type for .xul file extension, but the JavaScript code is not obfuscated, like in the following oncommand attribute:

<?xml version="1.0"?>
<overlay>
    <script type="application/x-javascript" src="commands.js" />
        <commandset>
            <command id="Highlight" oncommand="commandHighlightWords();" />
        </commandset>
    </script>
</overlay>

A.   

Please see answer to the previous question on how to properly add a new file type to Jasob, except in your case you will be adding the XUL Files that are based on the XML Files filter template and without making any changes to the Server Side Code tab on the File Types dialog. After you have added the XUL file type to Jasob, you need to specify where JavaScript code is placed inside XUL files. To do so, make sure option In XML elements is checked on the Client Side JavaScript and CSS Code tab on the File Types dialog (for the added XUL file type). Now you need to define XML elements and/or attributes inside XUL files that contain JavaScript code by choosing Obfuscate > Options... > XML tab from the main menu. Right-click the XML elements list on the Options dialog and choose Add... from the context menu. A dialog will appear where, in your case, you should enter "command" (without quotes) into the Elements edit box and "oncommand" (without quotes) into the Attributes edit box and click the OK button. You should actually add all XML elements and/or attributes that contain JavaScript code in XUL files to the XML elements list on the Options dialog. For more information, see Jasob User's Guide (section Options / The XML). Click the OK button on the Options dialog and you are now ready to open XUL files with Jasob.

Q.   

I have a server side parser that doesn't like very long lines (8192 characters max per each line). Can I restrict Jasob to create obfuscated code lines that do not exceed a given length?

A.   

Yes, you can limit obfuscated code line length by specifying maximum number of characters each obfuscated code line can contain. To do so for the desired file, right-click file in the project files list and choose Settings... > Other tab from the context menu and make sure option Limit obfuscated code line length is checked. Into the Maximum line length edit box enter the maximum number of characters each obfuscated code line can contain.

Q.   

Basically I have written my own .NET http request handlers and have a few classes that generate JavaScript code to be sent to the browser. When I load the C# file into Jasob, I can't seem to get it to recognise the JavaScript within the quotes.

A.   

Jasob doesn't obfuscate server side code directly. To make your C# code work you need to use variables for JavaScript names that you are using in your C# strings. After the obfuscation has finished, you have to replace those original C# variable values with obfuscated names. You can automate this process by using Jasob. For more information, see Jasob User's Guide (section Obfuscating Files / Obfuscating Dynamic Web Pages).

Q.   

I have an obfuscation problem with some PHP files that generate JavaScript code to be sent to the browser. For example, some PHP files have the following line:

<?php echo "<div onclick=\"test_function();\">"; ?>

The test_function is referenced in an external .js file, which is correctly obfuscated (i.e test_function is replaced by aa for example), while in the PHP code the function isn't replaced by aa.

A.   

Jasob doesn't obfuscate server side code directly. To make your PHP code work you need to use variables for JavaScript names that you are using in your PHP strings. After the obfuscation has finished, you have to replace those original PHP variable values with obfuscated names. You can automate this process by using Jasob. For more information, see Jasob User's Guide (section Obfuscating Files / Obfuscating Dynamic Web Pages).

Q.   

I would like to obfuscate a general purpose JavaScript files (similar to AJAX) that define a series of objects, methods and properties. What I would like to have are two security levels regarding the obfuscation:

- Level 1 (development stage) - Developers should be able to interface to these objects and debug obfuscated code without having to obfuscate the whole project.

- Level 2 (production release) - After development is complete, the whole project is obfuscated and all JavaScript  names are obfuscated for total security.

Could you explain how this might be done?

A.   

You can have two Jasob projects for the same JavaScript files, the development project and the release project and then have different settings with each of the projects. For example, in the development project you could choose not to remove JavaScript comments and white space characters while in the release project you could turn on those options. You could also choose not to obfuscate certain names in the development project while obfuscationg all names in the release project. The same also applies if you are obfuscating the Web site, in which case you would use two different Web site settings files for the same Web site.

Q.   

I'm using an ActiveX control with the JavaScript code. After the obfuscation the JavaScript code doesn't work properly with the ActiveX control. Is there a solution to this?

A.   

Yes, the point is that AciveX object names, their properties, methods and events cannot be obfuscated in the JavaScript code since those are internal to the ActiveX objects. To handle ActiveX objects with Jasob, you should add ActiveX object names and their properties, methods and events to the system names. System names are reserved JavaScript and CSS names that cannot be obfuscated and as such don't appear in name lists. To maintain a list of system names, choose Obfuscate > Options... > System Names tab from the main menu. For more information on system names, see Jasob User's Guide (section Options / System Names). After adding object names, properties, methods and events for ActiveX controls that you are using in your JavaScript code, your obfuscated code should work correctly because valid ActiveX object names, properties, methods and events will be preserved in the obfuscated code.

Q.   

In my JavaScript code I have a function with n name, like function n(par1, par2). When I try to obfuscate the code I cannot obfuscate that function name, I mean there's no that n in name lists. Why?

A.   

When obfuscating JavaScript code not all names can be obfuscated. There are certain JavaScript and CSS reserved words, properties, methods... that cannot be changed in order to not break the obfuscated code. In Jasob, those names are called system names and, in your case, n happens to be on the system names list. The system names list can be modified. To maintain a list of system names, choose Obfuscate > Options... > System Names tab from the main menu. For more information on system names, see Jasob User's Guide (section Options / System Names).

Q.   

I'm trying to obfuscate my JavaScript code with Jasob but the obfuscated code doesn't run and has errors. Is this normal? Do you provide consulting to help me obfuscate my files?

A.   

This could happen in certain cases because of the inappropriate settings in Jasob, but it can all be fixed by following these steps:

1. Obfuscate your files without obfuscating (renaming) any names and without removing white space characters. Only use the setting in Jasob to remove comments from the obfuscated code. If you are seeing errors when running the obfuscated code in the Web browser, navigate to the location where Web browser reports an error in your file and it should be easy to identify the problem and perhaps adjust the source code a little.

2. Use the setting in Jasob to remove white space characters from the obfuscated code and obfuscate your files again. Run the obfuscated code in the Web browser and if there is an error navigate to the location where Web browser reports an error in your file to identify the problem. When removing white space characters from the obfuscated code Jasob automatically inserts the semicolon character (;) into the obfuscated JavaScript code where it is needed. Despite this, if your Web browser reports an error of the missing semicolon (;) character, insert the semicolon (;) character into the original JavaScript code where it is required.

3. Now you can start marking names in name lists for obfuscation. You have to be aware that which names in name lists can be marked for obfuscation highly depends on the JavaScript code you are obfuscating. You can mark for obfuscation only names for which Jasob has access (opened files) to every code fragment where those names are used. Sometimes those are actually all names in name lists but sometimes they are not, for example if you are using an ActiveX control then you cannot mark for obfuscation names related to that ActiveX control, like its property names or method names. Another example would be when you are obfuscating some of your .js files but not all of them which work together, where you obviously cannot mark for obfuscation names that are also used in those other .js files which you are not obfuscating. You should also make sure that JavaScript code fragments are properly recognized by Jasob in all opened files, like in <script> elements and in some attribute values in HTML code for example. If you are uncertain which names can be marked for obfuscation, you can use the iterative process by marking names in name lists in chunks of let's say 20 names at the time, obfuscating files and then testing them. In case of an error you would know that there is a problem with some name within the last chunk of marked names and then by narrowing that chunk of marked names and testing the obfuscated files you will eventually reach the name that is causing problems. You can then choose to simply unmark that name for obfuscation or you may slightly modify your source code to allow for that name to be marked for obfuscation too once you have figured out what was the problem with that name. You can highlight (and navigate to) all name occurrences in source and obfuscated code by right-clicking name in a name list and by choosing Go To Source from the name list context menu. For more information on how to navigate to names and their occurrences in the code, see Jasob User's Guide (section Analyzing Files / Navigating to Names).

4. Please read also other Q & A in this FAQ as there you may find other useful information that may help you solving the problems you might have, like for example, questions related to obfuscation of the name occurrences in strings or questions related to obfuscation of dynamic Web pages.

5. You are welcome to send us your code examples you are having problems with and we will help you obfuscate your files. Send your code examples to trialsupport@jasob.com or support@jasob.com.

Q.   

I wonder if JavaScript code using Mac Safari's DOM  can be obfuscated with Jasob?

A.   

Yes. If there are some reserved words, properties, methods... specific to Mac Safari's DOM which cannot be obfuscated you should check whether they exist on the system names list in Jasob. System names are reserved JavaScript and CSS names that cannot be obfuscated. You can add new or edit existing system names. To maintain a list of system names, choose Obfuscate > Options... > System Names tab from the main menu. For more information on system names, see Jasob User's Guide (section Options / System Names).

Q.   

I am using the trial version and have noticed some comments that Jasob inserts into the obfuscated code. Is this also in the licensed version?

A.   

No. After the Jasob license is purchased Jasob trial messages are no longer inserted into the obfuscated code.

Q.   

I am trying to use Jasob from the command-line by using the following commands:

start /wait "" jasob.exe /src:"D:\Sources\Test\*.js"
or
start /wait "" jasob.exe /src:"D:\Sources\Test\FileA.js" "D:\Sources\Test\FileB.js"

but none of the commands works. What am I doing wrong?

A.   

When obfuscating files by using the command-line you have to use the /src: command-line parameter to specify files you wish to obfuscate. With the /src: command-line parameter you may either specify the Jasob project (.jsbp file) or the Web site (folder) you wish to obfuscate. In your case, you can first create a Jasob project for the files you wish to obfuscate by using the Jasob GUI and then use that project (.jsbp file) with the command-line /src: parameter. Or, you can also create a separate folder and copy files you wish to obfuscate to that folder and then specify that folder with the command-line /src: parameter. If you are obfuscating a Web site (or individual files inside the specified folder), use /destfolder: parameter to specify folder where obfuscated Web site will be saved. For complete explanation of the command-line obfuscation process and available command-line parameters you should see Jasob User's Guide (section Command-Line Parameters) before actually doing any command-line obfuscation.

Q.   

I am using the following command-line to obfuscate the Jasob project:

start /wait "" jasob.exe /src:"E:\MyFolder\MyProject.jsbp" /destfolder:"E:\OutputFolder"

but after the obfuscation has finished the destination folder (E:\OutputFolder) is empty. Why?

A.   

The command-line parameter /destfolder: is used when obfuscating Web sites. When obfuscating Jasob projects, obfuscated files are saved to the obfuscated file names that are saved with the Jasob project (.jsbp file). To change locations where obfuscated files are saved, open your project with Jasob GUI, obfuscate files and then save those obfuscated files to the locations where you wish (by right-clicking files in the project files list and by choosing Save Obfuscated As... from the context menu) and then SAVE your Jasob project. After that, when you will be using that Jasob project with the command-line again, obfuscated files will be saved to different locations (as specified in the project for each individual project file). It is recommended to use the /log: command-line parameter (like /log:JasobLog.txt) which allows you to create the obfuscation log in which you can find full paths of the saved obfuscated files.

Q.   

I have a Jasob project and have marked for obfuscation several names inside it. When I use this project with Jasob GUI I get correct results but when I use the same project with command-line the results are not the same. I have found out that when using this project with command-line there are also some other names marked for obfuscation. I only want to mark for obfuscation names that are marked for obfuscation inside the project, what should I do?

A.   

This can happen when your project source files have been modified after the project (.jsbp file) has been last saved. As the result of the modifications you have made to your source files, additional names can emerge that don't yet exist in the current project (.jsbp file) and when obfuscating such project with the command-line those additional names get marked for obfuscation automatically. However, you can choose to not mark for obfuscation those additional names that don't exist in the project by specifying the /nomarkall command-line parameter. The same is also true when obfuscating the Web site from the command-line and using Web site settings. Here you can also prevent Jasob from automatically marking for obfuscation additional names that don't exist in the specified Web site settings (.jsbw file) by using the /nomarkall command-line parameter. For complete explanation of the command-line obfuscation process and available command-line parameters, see Jasob User's Guide (section Command-Line Parameters).

Q.   

Is there a command-line parameter that will allow me to not remove white space characters from the obfuscated files when obfuscating the Jasob project?

A.   

Settings for removing white space characters are individual for each file that is part of the project. In order to have different settings for the project files you would need to create another Jasob project (with different settings) for the same files you wish to obfuscate and then use that project when working with Jasob command-line.

Q.   

I was just wondering if there was any way to combine multiple .js files automatically?

A.   

Yes, you can use Jasob to merge any number of specified files of any file type into a single file by using the /merge command-line parameter. When using the /merge command-line parameter, no other command-line parameters may be used except the /log: parameter. Files to be merged must follow after the /merge parameter. The last file specified is considered to be the combined file name. When creating the combined file, Jasob takes into account file encodings and inserts line break (CRLF) characters at the end of each separate file. For more information, see Jasob User's Guide (section Command-Line Parameters).

Q.   

I cannot see the Jasob User's Guide (JasobUsersGuide.chm file) properly. When I open it, the right-hand pane shows "Navigation to the webpage was canceled" error message. What's wrong?

A.   

This could happen because of the Windows security feature introduced in Windows XP SP2 that exists in Windows Vista also. To solve the problem, righ-click the JasobUsersGuide.chm file in Windows Explorer and choose Properties from the context menu and then on the General tab click the Unblock button. The JasobUsersGuide.chm file is located in the Help folder of the Jasob installation folder (usually in the C:\Program Files\Genesis Mobile\Jasob 4.1\Help folder). If you are still unable to see the Jasob User's Guide properly please search the Internet for other known HTML Help issues.

Bread & Milk - Shopping Lis
Jasob is used by hundreds of companies and individuals to protect and optimize their Web content.
"...We searched around for a solution that would allow us to easily obfuscate our JavaScript objects and Jasob saved the day. Jasob's approach to obfuscation allows us to achieve maximum compression which means less download time for our users. Obfuscation also makes it very difficult for someone to hijack our code and use it for their own purposes. PS: I love the fact that updates are emailed to me as soon as they're released. Thank you Jasob!"
Matt Wilson, Director, USA Development & Support, CAFM Solutions Inc.
"...Jasob works very well for us! We are using Jasob to protect and compress Javascript code inside our iMacros software for visual Web automation and Web testing. We found Jasob easy to use with a very powerful command line interface, so we can integrate it seamlessly into our build process. Jasob is a great addition to our development toolbox."
Mathias Roth, iOpus Inc.
"...I personally take a lot of pride in choosing Jasob because I spent a good couple of months scouring the Internet looking for the right one. The reason was because I wanted one that I could use and recommend to others for a long time to come. Since my job involves a lot of JavaScript work obfuscation is incredibly important to me. I looked high and low at every obfuscator you could imagine. I researched everything, from the free ones to really expensive ones and none of them quite fit the bill. Jasob was so impressive that I was rather shocked that the price was so affordable. There were obfuscators that I was reviewing that were priced really high but were so insanely difficult to use that there was no contest when compared to Jasob. I built Jasob directly into my one-step Web deployment installer in a matter of a day. Everything about the interface to the command-line usage made sense, unlike all of the other ones I tried. So as you can see I'm a big fan and I'll be using and recommending this software for a long time. Keep up the great work!"
Brent Matzelle, CEO, Hovitate LLC
"...Jasob has been most valuable in the development of BaseCase Interactive. The GUI allowed us fine-grained control of the specifics of the obfuscation, a necessity on our large project. That it could be invoked from the command-line allowed us to integrate it smoothly with our development process, saving valuable time."
Gijs Hubben, Basecase GmbH
"...We have used Jasob for several projects and found it to be an easy to use, effective obfuscator. It is the best value application around with all the functionality we need. Jasob also provide great technical support whenever we have had any questions. Highly recommended!"
Rob McMahon, www.mapchannels.com
"...Our project involves converting our JavaScript source and making sure it works in a wide variety of browsers. We evaluated numerous obfuscators and Jasob was the one that resulted in code that worked without tweaking in all our browsers! It was also easy to setup a batch process to integrate into our development process."
Rich Andrews, CTO, SmartWebDesign LLC
"...The wonderful professionals at Genesis Mobile have been very adaptive to our needs, they always listen to what the customer needs which makes them a class organization to work with."
Samer Bazzi, KoolIM LLC

Partial Client List

  • Cisco Systems
  • Autodesk
  • Sophos
  • Open Text
  • Infragistics
  • Servigistics
  • ViaMichelin
  • Swisscom / Innovations
  • LEAD Technologies
  • Saxo Bank
  • Genesys Conferencing
  • Motive
  • Samsung Fire & Marine Insurance
  • Reuters Financial Software
  • SHI
  • Industrial Technology Research Institute of Taiwan
  • Lenel Systems International
  • Neuf Cegetel
  • PixelPlay
  • TANDBERG
  • ICS
  • Synergy International Systems
  • 123Live
  • Navio Systems
  • ContextWeb
  • Archer Technologies
  • Ortikon Interactive
  • Box UK
  • Anystream
  • Clarient
  • HOB
  • Cendyn
  • Donlen Corporation
  • GATCO Technologies
  • iParadigms
  • Algorithmics
  • RealBird
  • Interspire
    ...