JavaScript Encryption Obfuscation

Drag and drop a JavaScript file or click to read a JavaScript file.

       

Confused encryption configuration


One-click configuration


Basic configuration



Identifier Name Generator


Identifier prefix




Target operating environment

Adjust protection settings




String settings


String encoding


string encryption coefficient






Filter settings

Lock domain


Preserve method


Retain string


Additional settings

Source Code Map


Source code map address


Source code map filename


Seed ID标识

JavaScript Code Obfuscation Tool Configuration Guide


compress into one line Compressing line breaks and spaces
Identifier Name Generator

Use this option to control how identifiers (variable names, function names, etc.) are obfuscated.

Hexadecimal
生成使用十六进制图案随机标识符的名称(如: 0xabc123

Short character:
使用短字符名称 (如: a, b, c 等等)

Identifier prefix

This option prefixes all global identifiers with a specific prefix.

Use this option when loading multiple files on the same page. It helps avoid conflicts between their global identifiers. Use a different prefix for each file.

Method variable renaming
This option may break your code. Enable it only if you know its function.

Use declarations to enable obfuscation of global variable and function names.

K protection

This option makes the output code resistant to formatting and renaming variables. If a JavaScript beautifier is attempted on obfuscated code, it will fail to work properly, thereby making it difficult to understand and modify.

需要 compress into one line 设置。

Prevent formatting
The impact on performance for this option is a reduction in running speed by 1.5 times.

Enable code control flow flattening. Control flow flattening is a source code structural transformation that hinders program understanding.

Formatting coefficient


In larger codebases, it's advisable to lower this value as a large number of control flow transitions increases code size and slows down its speed (from 0 to 1).

Flower command code injection
This option greatly increases the size of the code (up to 200%).

This feature adds random code blocks (i.e., non-executable code) to the obfuscated output, making reverse engineering more difficult.

Flower command injection rate


You can use this setting to adjust the probability that this option affects nodes (from 0 to 1).

需要 String encryption 选项支持。

String encryption

Remove string text and place it in a special array. For example, the string "Hello World" will be replaced with a call to a function that retrieves its value at runtime, like: var m = _0xb0c3('0x1'); Please refer to the following for configuring this feature with somewhat flexible options.

Rotate String Array


Move string arrays by a fixed and random position (generated in code obfuscation). This makes it harder to match the order of deleted strings with their original positions. If your original source code is not small, it is recommended to use this option, as auxiliary functions may draw attention.

If the source code is large, this option is recommended.

Reorder string array


Randomly sort the string array.

String encoding


This option slightly reduces script speed.

All string literals encoded with Base64 or RC4, and inserted with a special function to decode them at runtime.

Please note that the RC4 option is approximately 30-35% slower than the Base64 option, but it is harder to retrieve the string.

string encryption coefficient


You can use this setting to adjust the probability of inserting string text (ranging from 0 to 1).

This setting is very useful in large codebases as repeatedly invoking the string encryption function can slow down code performance.

Variable encryption

Convert the confusion object key.

For example, after obfuscating the code `var a = {enabled: true};`, the code hides the 'enabled' object key as: `var a = {}; a[_0x2ae0[('0x0')] = true;`.

Parameter settings for string encryption required.

Unicode escape sequence

Convert the confusion object key.

Convert all strings to their Unicode representation. For example, the string "Hello World!" will be converted to "'\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21'".

This transformation is easily reversible and greatly increases the size of the codebase's confusion. Not recommended for use in large codebases.

Disable console output

Banning the use of `console.log`, `console.info`, `console.error`, and `console.warn` makes debugging more challenging.

Debug protection
If the developer tools are opened, the browser can be frozen.

Using this option, it is almost impossible to use the Console tab of developer tools (in Google Chrome and Mozilla Firefox).

Debug protection interval


If this option is selected, a time interval will enforce debug mode on the "Console" tab, making other developer tool functions difficult to use.

A special code is inserted into the obfuscated source code for repeated execution.

Lock domain

Lock the obfuscated source code so it only runs on specific domains and/or subdomains. It's really hard for those who just copy and paste the source code to run it elsewhere.

multiple domains or subdomains
可以将代码锁定到多个域或子域。例如,要对其进行锁定以使代码仅在www.bejson.com上运行,请使用add www.bejson.com,使其可在bejson.com的任何子域上使用.bejson.com。

Maintain the name

Disable identifier generation that matches approved RegExp patterns.

For instance, if adding ^bejsoncom, the obfuscator ensures that none of the variables, function names, or function parameters starting with bejson will be disrupted.

Retain string

Disable string conversion if the text matches the passed RegExp pattern.

For instance, if adding ^bejson *string, the obfuscator will ensure that all strings starting with a certain string won't be encrypted during "string encryption".

Source Code Map
Ensure not to upload obfuscated source code with embedded source code images, as it contains original source code.

Source maps can help debug obfuscated JavaScript source code. To debug in production, upload the source map file to a secret location and point the browser there.

Inline source map
这会将源代码的源映射嵌入到混淆代码的结果中。如果只想在计算机上进行本地调试,则很有用。

Single source map
这将与源映射一起生成一个单独的文件。这对于调试生产中的代码很有用,因为这使您可以将源映射上载到服务器上的秘密位置,然后指向浏览器使用它。
使用“ 源地图基本URL”和“ 源地图文件名”来自定义sourceMappingURL将添加到混淆代码末尾的属性。
举例来说,如果你的设置基本URL来 "http://bejson.com:9000"和文件名来 "tool",你会得到://# sourceMappingURL=http://bejson.com:9000/tool.js.map。附加到混淆代码的末尾。

seed

By default (seed = 0), each time the code is obfuscated, a new result is obtained (i.e., different variable names, different variables inserted into stringArray, etc.). To get reproducible results, set the seed to a specific integer.

You recently used:

收藏: favorite Menu QQ