Preskoči na vsebino

JavaScript zakamuflirator

Spremenite JavaScript izvorno kodo v šestnajstiško kodirani eval(unescape(...)) delček, ki skrije kodo pred hitrim pogledom.

Vhod
Izhod

JavaScript zakamuflirator

Prilepite katerikoli JavaScript izvorno kodo in to orodje jo prepiše kot en sam šestnajstiško ubežan niz, ki se ponovno sestavi in zažene s eval(unescape('...')). To je klasični trik "osnovne kamufliranja": vsak znak vašega koda postane %XX (ali %uXXXX za znake zunaj prvih 256 kodnih točk) zaporedje odstotnega ubega, zato izvor ni več berljiv na prvi pogled — brez imen spremenljivk, brez stringovnih dobesedkov, brez vidnih komentarjev.

Privzeto je izlaz zavit v samozagonsko funkcijo, (function(){eval(unescape('...'))})();, tako da lahko rezultat neposredno spustite v <script> oznako ali drugo datoteko in se izvršuje takoj, natančno kot original. Izklopite "Zavij v samozagonsko funkcijo", če namesto tega želite le eval(unescape('...')); izjavo, na primer za vstavitev znotraj funkcije, ki jo že nadzorujete.

To je kamufliranje, ne šifriranje ali varnost: unescape() in eval() so vidni v izlazu, dekodiranje šestnajstiškega niza nazaj na izvorno kodo pa je envrščna operacija za vsakogar, ki gleda — konzola brskalnika to naredi tako hitro, kot lahko prilepite. Obravnavajte to kot način, da odvračate naključno kopiranje ali držite delček od hitrega view-source pogleda, ne kot način za zaščito skrivnosti, ključev API ali česar koli, kar resnično mora ostati zaupno.

Vse teče lokalno v vašem brskalniku. Koda, ki jo prilepite, nikoli ni naložena ali poslana nikamor, zato je varno kamuflirati lastniške ali ne-izdane skripte. Števec pod izhodom prikazuje, koliko znakov je vstopilo, koliko je izšlo in koliko bajtov je bilo šestnajstiško kodirano, tako da vidite povečanje velikosti, preden kopirate ali prenesete rezultat.

FAQ

Je to prava varnost ali je kodo mogoče de-kamuflirati?
Ni varnost. Kdorkoli lahko zažene unescape() na nizu znotraj izhoda in doseže originalno izvorno kodo v enem koraku — to le skrije kodo pred hitrim pogledom, ne pred tistim, ki res gleda.
Ali se bo kamufliranakoda obnašala točno kot original?
Da. eval(unescape('...')) ponovno sestavi in zažene natančno originalno izvorno kodo, znak za znakom, vključno z razmakom, prelomi vrstic in vsebino stringov.
Kaj naredi "Zavij v samozagonsko funkcijo"?
Zavije eval(unescape('...')) klic v (function(){...})(); tako da se rezultat takoj izvršuje kot samostojna izjava. Izklopite jo, če želite postaviti eval(unescape('...')); klic znotraj lastne funkcije ali obsega.
Ali deluje tudi na minimizirani kodi?
Da. Lahko kamuflate katerokoliv JavaScript besedilo, minimizirano ali ne — orodje obravnava vhod kot navadno besedilo in ga šestnajstiško kodira znak za znakom, tako da minifikacija najprej (s CSS/JS minimizatorjem) le skrajša kodirani izlaz.
Je moja izvorna koda naložena negdje?
Ne. Zakamuflirator se izvršuje popolnoma v vašem brskalniku — koda, ki jo prilepite, nikoli ne zapusti vašo napravo.