π JScool β High/Extreme JavaScript Obfuscator
Secure your code. Obfuscate with precision.
- π¬π§ English
- π»π³ TiαΊΏng Viα»t
JScool is a powerful CLI-based JavaScript obfuscator focused on code protection, not just visual complexity.
It applies multiple layers of transformation and runtime protection to make reverse engineering significantly harder.
- String encryption (RC4 + Base64)
- Identifier renaming (Unicode-based)
- Control flow flattening
- Anti-debug & anti-proxy protections
- Optional junk/dead code injection
- ...
npm install -g tsxtsx jscool.mtsThen follow CLI prompts:
Enter input JS file path: example.js
Add Anti-Hooking? [Y/N]
Add Junk Code? [Y/N]
obf.js
Support the project by starring β
150 |ββββββββββββββββββββββββββββββββββββββββββββββββ| π―
120 |ββββββββββββββββββββββββββββββββββββββ |
90 |βββββββββββββββββββββββββββ |
60 |ββββββββββββββββββ |
30 |ββββββββββ |
0 | |
β 150 Stars β Release:
- JScool v2 (Enhanced Protection)
- Python Obfuscator version
This tool is intended for legitimate code protection purposes only.
- MΓ£ hΓ³a chuα»i (RC4 + Base64)
- Δα»i tΓͺn biαΊΏn bαΊ±ng Unicode
- control flow
- Anti-Debug, Anti-Hooking & proxy
- CΓ³ thα» thΓͺm junk/dead code
- ...
npm install -g tsxtsx jscool.mtsSau ΔΓ³ nhαΊp:
Enter input JS file path: ./app.js
Add Anti-Hooking? [Y/N]
Add Junk Code? [Y/N]
obf.js
Ủng hα» project bαΊ±ng cΓ‘ch β
150 |ββββββββββββββββββββββββββββββββββββββββββββββββ| π―
120 |ββββββββββββββββββββββββββββββββββββββ |
90 |βββββββββββββββββββββββββββ |
60 |ββββββββββββββββββ |
30 |ββββββββββ |
0 | |
β 150 Stars β Ra mαΊ―t:
- JScool v2 (bαΊ£o mαΊt nΓ’ng cao)
- PhiΓͺn bαΊ£n Python Obfuscator >.<
Tool Δược tαΊ‘o ra nhαΊ±m mα»₯c ΔΓch bαΊ£o vα» mΓ£ nguα»n hợp phΓ‘p.
Code Before
function greetUser(name) {
const message = "Hello, " + name + "!";
console.log(message);
return message;
}
greetUser("World");
Code After
var __INFO__ = {
'Obfuscator': 'KTN',
'Obfuscator Owner': 'TrΖ°Ζ‘ng NhαΊt BαΊ£o Nam - ktn',
'Contact': 'https://github.com/Swp-dev/Javascript-Cool',
};
/** Generated: 2026-04-19T09:57:15.905Z | https://tanstack-start-app.kingktn.workers.dev/ */
;(function _νγλe9a73(){
var _ζΉ4γΉγγab8=["jcs6Azzzsw==","ksEkAzc="];
function _γγ302e4f(i){
var _a=typeof atob==='function'?atob:function(x){return Buffer.from(x,'base64').toString('binary');};
var _k="a798541db7cc3c67",_s=[],_j=0,_i,_r='',_d=_a(_ζΉ4γΉγγab8[i]);
for(_i=0;_i<256;_i++)_s[_i]=_i;
for(_i=0;_i<256;_i++){_j=(_j+_s[_i]+_k.charCodeAt(_i%_k.length))%256;var _t=_s[_i];_s[_i]=_s[_j];_s[_j]=_t;}
var _x=0,_y=0;
for(_i=0;_i<_d.length;_i++){_x=(_x+1)%256;_y=(_y+_s[_x])%256;var _t=_s[_x];_s[_x]=_s[_y];_s[_y]=_t;_r+=String.fromCharCode(_d.charCodeAt(_i)^_s[(_s[_x]+_s[_y])%256]);}
return _r;
}
(function(){
function _λ½μ©ζ§4γ(fn){
try{
var s=Function.prototype.toString.call(fn);
if(!/native code/.test(s))throw 1;
}catch(e){
try{debugger;}catch(e2){}
}
}
var _γ0ι
9ε=[
setTimeout,clearTimeout,setInterval,clearInterval,
JSON.stringify,JSON.parse,
Object.keys,Object.assign,Object.defineProperty,
Array.prototype.map,Array.prototype.forEach,Array.prototype.filter,
Function.prototype.toString,Function.prototype.call,Function.prototype.apply,
eval,parseInt,parseFloat,decodeURIComponent,encodeURIComponent
];
for(var _i=0;_i<_γ0ι
9ε.length;_i++){_λ½μ©ζ§4γ(_γ0ι
9ε[_i]);}
})();
(function(){
if(typeof window==='undefined')return;
function _γ£εΌd87(){
if(typeof performance==='undefined'||!performance.now)return;
var _s=performance.now();debugger;var _d=performance.now()-_s;
if(_d>100){
try{if(document&&document.body)document.body.innerHTML='';}catch(e){}
}
}
function _γ΅3γ‘e3(){
var _th=160;
if(window.outerWidth-window.innerWidth>_th||window.outerHeight-window.innerHeight>_th){
try{debugger;}catch(e){}
}
}
try{_γ£εΌd87();}catch(e){}
try{_γ΅3γ‘e3();}catch(e){}
})();
(function(){
if(typeof window==='undefined'||typeof fetch==='undefined')return;
var _γe1eζ’=['https://www.google.com/favicon.ico','https://www.cloudflare.com/favicon.ico'];
var _ηΊ¬γ¨λac=function(){
var _t=Date.now();
fetch(_γe1eζ’[0],{mode:'no-cors',cache:'no-store'}).then(function(){
var _d=Date.now()-_t;
if(_d>3000){
try{debugger;}catch(e){}
}
}).catch(function(){});
};
try{
var _origOpen=XMLHttpRequest.prototype.open;
var _origSend=XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.open=function(){
this.__jscool_ts=Date.now();
return _origOpen.apply(this,arguments);
};
XMLHttpRequest.prototype.send=function(){
var _self=this;
this.addEventListener('load',function(){
var _cert=_self.getResponseHeader&&_self.getResponseHeader('x-httptoolkit-injected');
if(_cert){try{debugger;}catch(e){}}
});
return _origSend.apply(this,arguments);
};
}catch(e){}
try{_ηΊ¬γ¨λac();}catch(e){}
})();
(function(){
var _h=-1073923503;
if(typeof _h!=='number'){try{debugger;}catch(e){}}
})();
if(8688<18962){var _γ¬γ4a=null;}
[53,26,95].reverse();
void(677923426^910531213);
try{Object.freeze({a:772});}catch(e){}
[190,230,213,52,150].reverse();
void(732599979^243370012);
[164,103,227,64].reverse();
var _γ―θ¨μ³7='083c2d9c4733'.split('').reverse().join('');
(function __γcγ΅(n){if(n<=0)return 0;return n+__γcγ΅(n-1);})(0);
var _μ573=Math.floor(Math.random()*32103);
var _γΆ25γ΄=Math.floor(Math.random()*78016);
try{Object.freeze({a:467});}catch(e){}
var _γ―e38=Math.floor(Math.random()*3956);
(function __γ쫢樑(n){if(n<=0)return 0;return n+__γ쫢樑(n-1);})(5);
try{Object.freeze({a:450});}catch(e){}
if(9537<32472){var _γ»ι΄κ·f=null;}
void(871528037^981620251);
function _ιΏ4η―η’ΆζΉ9μ¨ (_θ³69305γ){const _γ¦λ²γ1γ±γ°c=_γγ302e4f(0)+_θ³69305γ+"!";console.log(_γ¦λ²γ1γ±γ°c);return _γ¦λ²γ1γ±γ°c}(function __λΉ38(n){if(n<=0)return 0;return n+__λΉ38(n-1)})(0);(function(){try{throw new Error("63b3c7d8")}catch(e){}})();var _γ₯γΏλ γ«=Math.floor(Math.random()*58780);(function __γbγ (n){if(n<=0)return 0;return n+__γbγ (n-1)})(1);_ιΏ4η―η’ΆζΉ9μ¨ (_γγ302e4f(1));try{Object.freeze({a:97})}catch(e){}[207,77,148].reverse();[7,249,98,200].reverse();var _μ89γ="22f5daee01be".split("").reverse().join("");void(968971978^396211829);void(typeof _ι6μ΅c==="undefined"?12:60);var _μ
¦μ2f=function(){return Array(16).join("5565")}();if(9170<57389){var _θγθ§γ=null}(function(){try{throw new Error("a051a8e7")}catch(e){}})();var _γ΄γι£Ήμ©=Math.floor(Math.random()*78329);
})();
JScool β Keep your code safe.