Javascript Compressor Obfuscator

Ecco un nuovo ed interessante tool per la compressione e l’oscuramento di codice Javascript (vedi anche Reverse Engineering: i compressori di codice).
Sul sito Web di Dean Edwards è possibile scaricare anche il codice sorgente Javascript di questo compressor. Inoltre l’autore ha reso disponibili le versioni server per Microsoft .NET Framework versione 1.1, Perl, WHS e PHP5.

Online è disponibile una versione funzionante da provare subito, meno complessa - a dire il vero - di quelle che avevo presentato tempo fa. Permette, infatti, di comprimere il codice con due sole scelte: il Base62 encode, che oscura il codice e il Shrink variables, l’ottimizzatore di variabili.
Rispetto alla precedente versione sono stati risolti alcuni bachi che, in situazioni di hack estremi (e davvero interessanti) come:

1
var isMSIE = /*@cc_on!@*/false;

non rispettavano l’output generato. Ora sono correttamente supportati sia i conditional comments di Microsoft, sia gli  operatori +/- in condizioni come:

1
c=a++ +b;

Come sottolineato nella pagina di Help, tuttavia:

Packed scripts should successfully unpack on all browsers that support JavaScript. Only basic JavaScript functionality is used to decode the packed script.

Some browsers may not support the packer itself. The web interface requires DOM support. Legacy browsers will display a disabled interface.

Quindi massima attenzione all’utenza finale e al tipo di browser da supportare… come sempre del resto!