-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a53698a
commit a1425ea
Showing
1 changed file
with
1 addition
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>JSHell</title><meta name="description" content="JSHell Build 051724"><link rel="icon" type="image/x-icon" href="./dist/ic.png"><meta name="viewport" content="width=device-width"><style>body{padding:20px}*,body{font-family:monospace;font-size:14px;line-height:1.4em}h1{font-size:2em;position:absolute;top:70px;font-weight:400;left:140px}.ic{width:90px;text-align:right;padding:50px 5px 5px;background:red;color:#fff;font-weight:700;font-size:20px;line-height:1em}.rt{color:#00f}h3{font-weight:700}.actions,li,p,textarea{width:100%;max-width:600px}textarea{display:block;height:200px;margin:1em 0}ul.pre li{white-space:pre}.checkbox{display:inline-block}.actions a{float:right}.actions{clear:both}.range-input{-webkit-appearance:none;appearance:none;width:100%;cursor:pointer;outline:0;border-radius:15px;height:6px;background:#ccc}.range-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:15px;width:15px;background-color:#f50;border-radius:50%;border:none;transition:.2s ease-in-out}.range{align-items:center;margin-bottom:1rem;margin-top:10px;width:50%}.range-input::-moz-range-thumb{height:15px;width:15px;background-color:#f50;border-radius:50%;border:none;transition:.2s ease-in-out}.range-input::-webkit-slider-thumb:hover{box-shadow:0 0 0 10px rgba(255,85,0,.1)}.range-input:active::-webkit-slider-thumb{box-shadow:0 0 0 13px rgba(255,85,0,.2)}.range-input:focus::-webkit-slider-thumb{box-shadow:0 0 0 13px rgba(255,85,0,.2)}.range-input::-moz-range-thumb:hover{box-shadow:0 0 0 10px rgba(255,85,0,.1)}.range-input:active::-moz-range-thumb{box-shadow:0 0 0 13px rgba(255,85,0,.2)}.range-input:focus::-moz-range-thumb{box-shadow:0 0 0 13px rgba(255,85,0,.2)}.range-slider{flex:1}.sliderticks{display:flex;justify-content:space-between;padding:0 10px}.sliderticks span{display:flex;justify-content:center;width:1px;height:10px;background:#d3d3d3;line-height:40px}.settings{margin-top:10px}#encode{width:50%;text-align:center}</style></head><body><div translate="no" class="notranslate"><h1>JSHell</h1><h2 class="ic">()+<br>[]!</h2></div><p>JSHell<i>( Improved version of JSFuck )</i><b>-</b>Build 051924</p><p>JSHell is an obfuscator tool for JavaScript, it rewrite whole code using only 6 chars. Doesn't depend on a browser, so you can even run it on Node.js</p><p>Use the form below to convert your own script. Uncheck "eval source" to get back a plain string.</p><textarea id="input">alert(1)</textarea><button id="encode" type="text">Encode</button><div class="settings"><div class="checkbox"><input id="eval" type="checkbox" checked=""><label for="eval">Eval Source</label></div><div class="checkbox"><input id="scope" type="checkbox" checked=""><label for="scope">Run In Parent Scope</label></div><div class="checkbox"><input id="minify" type="checkbox" checked=""><label for="minify">Minify Code</label></div><div class="checkbox"><input id="debug" type="checkbox"><label for="debug">Debugging (Unsecure)</label></div></div><div class="range"><div class="range-slider"><label for="range">Security Level (Heavier - More Secure)</label><br><input type="range" min="0" max="100" value="50" class="range-input" step="50" id="rm"><div class="sliderticks"><span>1</span><span>2</span><span>3</span></div></div><br><textarea id="output"></textarea><div class="actions"><span id="stats">chars</span><br><a id="run" style="float:none;color:#00f;cursor:pointer">Run Obfuscated Code</a>|<a id="save" style="float:none;color:#00f;cursor:pointer;text-decoration:none">Save as .js file</a></div><script src="https://raw.githubusercontent.com/ScadeBlock/jshell/main/src/jshell.js" class="eraser5"></script><script class="eraser5" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/source-map.js"></script><script class="eraser5" src="https://cdn.jsdelivr.net/npm/terser/dist/bundle.min.js"></script><script class="eraser5" defer="defer">function $(e){return document.getElementById(e)}function formatBytes(e,t=2){if(!+e)return"0 Bytes";const o=t<0?0:t,c=Math.floor(Math.log(e)/Math.log(1024));return`${parseFloat((e/Math.pow(1024,c)).toFixed(o))} ${["Bytes","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"][c]}`}async function encode(){origcode=$("input").value,$("minify").checked&&(rs=await Terser.minify(origcode,{sourceMap:!0}),origcode=rs.code);var e=JSHell($("rm").value,origcode,$("eval").checked,$("scope").checked,$("debug").checked);$("output").value=e,$("stats").innerHTML=e.length+" chars. Meaning "+formatBytes(e.length)}$("encode").onclick=encode,encode(),$("run").onclick=function(){return value=eval($("output").value),$("eval").checked||alert('"'+value+'"'),!1},$("save").onclick=function(){file=new Blob([$("output").value],{type:"text/plain"}),$("save").href=URL.createObjectURL(file),$("save").download="jshell_output.js"},document.querySelectorAll(".eraser5").forEach((e=>e.remove()));</script></body></html> | ||
<meta content="text/html; charset=UTF-8"http-equiv=Content-Type><title>JSHell</title><meta content="JSHell Build 051724"name=description><link href=./dist/ic.png rel=icon type=image/x-icon><meta content="width=device-width"name=viewport><style>body{padding:20px}*,body{font-family:monospace;font-size:14px;line-height:1.4em}h1{font-size:2em;position:absolute;top:70px;font-weight:400;left:140px}.ic{width:90px;text-align:right;padding:50px 5px 5px;background:red;color:#fff;font-weight:700;font-size:20px;line-height:1em}.rt{color:#00f}h3{font-weight:700}.actions,li,p,textarea{width:100%;max-width:600px}textarea{display:block;height:200px;margin:1em 0}ul.pre li{white-space:pre}.checkbox{display:inline-block}.actions a{float:right}.actions{clear:both}.range-input{-webkit-appearance:none;appearance:none;width:100%;cursor:pointer;outline:0;border-radius:15px;height:6px;background:#ccc}.range-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:15px;width:15px;background-color:#f50;border-radius:50%;border:none;transition:.2s ease-in-out}.range{align-items:center;margin-bottom:1rem;margin-top:10px;width:50%}.range-input::-moz-range-thumb{height:15px;width:15px;background-color:#f50;border-radius:50%;border:none;transition:.2s ease-in-out}.range-input::-webkit-slider-thumb:hover{box-shadow:0 0 0 10px rgba(255,85,0,.1)}.range-input:active::-webkit-slider-thumb{box-shadow:0 0 0 13px rgba(255,85,0,.2)}.range-input:focus::-webkit-slider-thumb{box-shadow:0 0 0 13px rgba(255,85,0,.2)}.range-input::-moz-range-thumb:hover{box-shadow:0 0 0 10px rgba(255,85,0,.1)}.range-input:active::-moz-range-thumb{box-shadow:0 0 0 13px rgba(255,85,0,.2)}.range-input:focus::-moz-range-thumb{box-shadow:0 0 0 13px rgba(255,85,0,.2)}.range-slider{flex:1}.sliderticks{display:flex;justify-content:space-between;padding:0 10px}.sliderticks span{display:flex;justify-content:center;width:1px;height:10px;background:#d3d3d3;line-height:40px}.settings{margin-top:10px}#encode{width:50%;text-align:center}</style><div class=notranslate translate=no><h1>JSHell</h1><h2 class=ic>()+<br>[]!</h2></div><p>JSHell<i>( Improved version of JSFuck )</i><b>-</b>Build 051924<p>JSHell is an obfuscator tool for JavaScript, it rewrite whole code using only 6 chars. Doesn't depend on a browser, so you can even run it on Node.js<p>Use the form below to convert your own script. Uncheck "eval source" to get back a plain string.</p><textarea id=input>alert(1)</textarea><button id=encode type=text>Encode</button><div class=settings><div class=checkbox><input id=eval type=checkbox checked><label for=eval>Eval Source</label></div><div class=checkbox><input id=scope type=checkbox checked><label for=scope>Run In Parent Scope</label></div><div class=checkbox><input id=minify type=checkbox checked><label for=minify>Minify Code</label></div><div class=checkbox><input id=debug type=checkbox><label for=debug>Debugging (Unsecure)</label></div></div><div class=range><div class=range-slider><label for=range>Security Level (Heavier - More Secure)</label><br><input id=rm type=range class=range-input max=100 min=0 step=50 value=50><div class=sliderticks><span>1</span><span>2</span><span>3</span></div></div><br><textarea id=output></textarea><div class=actions><span id=stats>chars</span><br><a id=run style=float:none;color:#00f;cursor:pointer>Run Obfuscated Code</a>|<a id=save style=float:none;color:#00f;cursor:pointer;text-decoration:none>Save as .js file</a></div><script class=eraser5 src=https://cdn.jsdelivr.net/npm/[email protected]/dist/source-map.js></script><script class=eraser5 src=https://cdn.jsdelivr.net/npm/terser/dist/bundle.min.js></script><script class=eraser5 defer>function _JSHell_randomChoice(e){return e[Math.floor(Math.random()*e.length)]}function _JSHell_randomIntFromInterval(e,n){return Math.floor(Math.random()*(n-e+1)+e)}function _JSHell_shuffleArray(e){for(let n=e.length-1;n>0;n--){const r=Math.floor(Math.random()*(n+1));[e[n],e[r]]=[e[r],e[n]]}return e}function _JSHell_ngf(e=0,n="[]+",r=1,t=8,l=null,a=!1){return part1=-2==e?"!".repeat(_JSHell_randomIntFromInterval(1,5)):e<=-1?"":"!".repeat(2*_JSHell_randomIntFromInterval(1,2)+e),"rp"==n?(part3a=n.repeat(_JSHell_randomIntFromInterval(r,t)).toString(),partx=_JSHell_randomIntFromInterval(r,t),part3b=Array.from({length:partx},(()=>Math.floor(Math.random()*partx))).toString(),part3c=part3a+part3b,part2=part3c.split(","),part2="["+_JSHell_shuffleArray(part2).toString()+"]"):"rl"==l?(part2="["+n.repeat(_JSHell_randomIntFromInterval(r,t)).slice(0,-1)+"]",part2=part2.replaceAll("[]",(function(){return x=_JSHell_randomIntFromInterval(r,t),"[".repeat(x)+"]".repeat(x)}))):"string"==typeof n?"inside"==l?(x=_JSHell_randomIntFromInterval(r,t),part2="["+"[".repeat(x)+"]".repeat(x)+"]"):part2="["+n.repeat(_JSHell_randomIntFromInterval(r,t)).slice(0,-1)+"]":"number"==typeof n&&(part2="["+Array.from({length:_JSHell_randomIntFromInterval(r,t)},(()=>Math.floor(40*Math.random())))),partf=a?"["+part1+part2+"][0]":part1+part2,partf}function _JSHell_getUndef(e="50"){return pf="0"==e?"[[]][[]]":"50"==e?"[]"+_JSHell_ngf(-1,"[]+",3,5):"[]"+_JSHell_ngf(-1,"[]+",3,5,"rl",!1),pf}function JSHell(e,n,r,t,l){0==l&&(n="try{"+n+"}catch{}");var a={},o={false:"![[]+[]]",true:"!![[]+[]]",undefined:"[[]][[]]",NaN:"+[![[]+[]]]",Infinity:"+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[+[]]+[+[]]+[+[]])"},i={Array:"[[]+[]]",Number:"(+[[]+[]])",String:"([]+[]+[])",Boolean:"(!!![[]+[]])",Function:'[]["flat"]',RegExp:'Function("return/"+false+"/")()',Object:'[]["entries"]()'},u={a:'(false+"")[1]',b:'([]["entries"]()+"")[2]',c:'([]["flat"]+"")[3]',d:'(undefined+"")[2]',e:'(true+"")[3]',f:'(false+"")[0]',g:"(false+[0]+String)[20]",h:'(+(101))["to"+String["name"]](21)[1]',i:"([false]+undefined)[10]",j:'([]["entries"]()+"")[3]',k:'(+(20))["to"+String["name"]](21)',l:'(false+"")[2]',m:'(Number+"")[11]',n:'(undefined+"")[1]',o:'(true+[]["flat"])[10]',p:'(+(211))["to"+String["name"]](31)[1]',q:'("")["fontcolor"]([0]+false+")[20]',r:'(true+"")[1]',s:'(false+"")[3]',t:'(true+"")[0]',u:'(undefined+"")[0]',v:'(+(31))["to"+String["name"]](32)',w:'(+(32))["to"+String["name"]](33)',x:'(+(101))["to"+String["name"]](34)[1]',y:"(NaN+[Infinity])[10]",z:'(+(35))["to"+String["name"]](36)',A:'(NaN+[]["entries"]())[11]',B:"(+[]+Boolean)[10]",C:'Function("return escape")()(("")["italics"]())[2]',D:'Function("return escape")()([]["flat"])["slice"]("-1")',E:'(RegExp+"")[12]',F:"(+[]+Function)[10]",G:'(false+Function("return Date")()())[30]',H:null,I:'(Infinity+"")[0]',J:null,K:null,L:null,M:'(true+Function("return Date")()())[30]',N:'(NaN+"")[0]',O:"(+[]+Object)[10]",P:null,Q:null,R:"(+[]+RegExp)[10]",S:"(+[]+String)[10]",T:'(NaN+Function("return Date")()())[30]',U:'(NaN+Object()["to"+String["name"]]["call"]())[11]',V:null,W:null,X:null,Y:null,Z:null," ":'(NaN+[]["flat"])[11]',"!":null,'"':'("")["fontcolor"]()[12]',"#":null,$:null,"%":'Function("return escape")()([]["flat"])[21]',"&":'("")["fontcolor"](")[13]',"'":null,"(":'([]["flat"]+"")[13]',")":'([0]+false+[]["flat"])[20]',"*":null,"+":"(+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[+[]]+[+[]])+[])[2]",",":'[[]]["concat"]([[]])+""',"-":'(+(.+[0000001])+"")[2]',".":"(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]","/":'(false+[0])["italics"]()[10]',":":'(RegExp()+"")[3]',";":'("")["fontcolor"](NaN+")[21]',"<":'("")["italics"]()[0]',"=":'("")["fontcolor"]()[11]',">":'("")["italics"]()[2]',"?":'(RegExp()+"")[2]',"@":null,"[":'([]["entries"]()+"")[0]',"\\":'(RegExp("/")+"")[1]',"]":'([]["entries"]()+"")[22]',"^":null,_:null,"`":null,"{":'(true+[]["flat"])[20]',"|":null,"}":'([]["flat"]+"")["slice"]("-1")',"~":null};function f(e){var n=e.charCodeAt(0);if(n<256)return"\\"+n.toString(8);var r=n.toString(16);return"\\u"+("0000"+r).substring(r.length)}function c(e){return f(e).replace("\\","t")}return a.SIMPLE=Object.assign({},o),a.CONSTRUCTORS=Object.assign({},i),o[void 0]=_JSHell_getUndef(e),"0"==e?(o=a.SIMPLE,i=a.CONSTRUCTORS):"50"==e?(o.true=_JSHell_ngf(0,"[]+",2,4),o.false=_JSHell_ngf(1,"[]+",2,4),o.NaN="+["+_JSHell_ngf(1,"[]+",2,4)+"]",i.Array=_JSHell_ngf(-1,"[],",1,5),i.Boolean=_JSHell_ngf(-2,"[]+",1,5),i.Function=_JSHell_ngf(-1,"[]+",1,5)+'["flat"]',i.Number="(+"+_JSHell_ngf(-1,"[]+",1,5)+")",i.String="("+_JSHell_ngf(-1,"[]+",1,5)+")[0]"):(o.true=_JSHell_ngf(0,"[]+",2,6,"rl",!0),o.false=_JSHell_ngf(1,"[]+",2,6,"rl",!0),o.NaN="+["+_JSHell_ngf(1,"[]",2,6,"inside")+"]",i.Array=_JSHell_ngf(-1,"[],",1,5,null,!0),i.Boolean=_JSHell_ngf(-2,"[]+",1,5,null,!0),i.Function=_JSHell_ngf(-1,"[]+",1,5)+'["flat"]',i.Number="(+"+_JSHell_ngf(-1,"[]+",1,5)+")",i.String="("+_JSHell_ngf(-1,"[]+",1,5)+")[0]"),function(){var e,n,r;for(n=0;n<10;n++){for(e="+[]",n>0&&(e="+!"+e),r=1;r<n;r++)e="+!+[]"+e;n>1&&(e=e.substr(1)),u[n]="["+e+"]"}}(),function(){var e,n,r,t="";function l(n,r){e=r instanceof Array?e.replace(new RegExp(n,"gi"),(function(e){return _JSHell_randomChoice(r)})):e.replace(new RegExp(n,"gi"),r)}function a(e,n){return u[n]}function f(e,r){var t=r.split(""),l=+t.shift(),o="+[]";for(l>0&&(o="+!"+o),n=1;n<l;n++)o="+!+[]"+o;return l>1&&(o=o.substr(1)),[o].concat(t).join("+").replace(/(\d)/g,a)}for(n=32;n<=126;n++)if(t=String.fromCharCode(n),e=u[t]){for(r in o)l(r,o[r]);for(r in i)l("\\b"+r,i[r]+'["constructor"]');l("(\\d\\d+)",f),l("\\((\\d)\\)",a),l("\\[(\\d)\\]",a),l("GLOBAL",'Function("return this")()'),l('\\+""',"+[]"),l('""',"[]+[]"),u[t]=e}}(),function(){var e,n,r,t=/[^\[\]\(\)\!\+]{1}/g,l=94;function a(){var e,n,l=!1;for(e in r={},u)(n=u[e])&&n.match(t)&&(r[e]=n,l=!0);return l}function o(e,n){return n.split("").join("+")}function i(e){return r[e]?e:u[e]}for(e in u)u[e]&&(u[e]=u[e].replace(/\"([^\"]+)\"/gi,o));for(;a();){for(e in r)n=(n=u[e]).replace(t,i),u[e]=n,r[e]=n;0==l--&&console.error("Could not compile the following chars:",r)}}(),function e(n,r,t,l=null){var a=[];if(!n)return"";var i="";for(var s in u)u[s]&&(i+=s);i=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),i=new RegExp("[^"+i+"]","g");var p=(n.match(i)||[]).length;p>1?n=n.replace(/[^0123456789.adefilnrsuN]/g,c):p>0&&(n=(n=n.replace(/["\\]/g,f)).replace(i,f));var g="";for(var _ in o)g+=_+"|";return g+=".",n.replace(new RegExp(g,"g"),(function(e){var n=o[e];if(n)a.push("("+n+"+[])");else{if(!(n=u[e]))throw new Error("Found unmapped character: "+e);a.push(n)}})),a=a.join("+"),/^\d$/.test(n)&&(a+="+[]"),p>1&&(a="("+a+")["+e("split")+"]("+e("t")+")["+e("join")+"]("+e("\\")+")"),p>0&&(a="[]["+e("flat")+"]["+e("constructor")+"]("+e('return"')+"+"+a+"+"+e('"')+")()"),r&&(a=t?"[]["+e("flat")+"]["+e("constructor")+"]("+e("return eval")+")()("+a+")":"[]["+e("flat")+"]["+e("constructor")+"]("+a+")()"),a}(n,r,t)}function $(e){return document.getElementById(e)}function formatBytes(e,n=2){if(!+e)return"0 Bytes";const r=n<0?0:n,t=Math.floor(Math.log(e)/Math.log(1024));return`${parseFloat((e/Math.pow(1024,t)).toFixed(r))} ${["Bytes","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"][t]}`}async function encode(){origcode=$("input").value,$("minify").checked&&(rs=await Terser.minify(origcode,{sourceMap:!0}),origcode=rs.code);var e=JSHell($("rm").value,origcode,$("eval").checked,$("scope").checked,$("debug").checked);$("output").value=e,$("stats").innerHTML=e.length+" chars. Meaning "+formatBytes(e.length)}$("encode").onclick=encode,encode(),$("run").onclick=function(){return value=eval($("output").value),$("eval").checked||alert('"'+value+'"'),!1},$("save").onclick=function(){file=new Blob([$("output").value],{type:"text/plain"}),$("save").href=URL.createObjectURL(file),$("save").download="jshell_output.js"},document.querySelectorAll(".eraser5").forEach((e=>e.remove()));</script> |