Curiosando tra i sorgenti javascript dei siti altrui, magari sperando di poter carpire qualche segreto sul funzionamento di un particolare effetto o tool, potreste esservi imbattuti in script con un incipit simile:
seguito da una serie di funzioni, stringhe e numeri apparentemente senza logica e messi alla rinfusa.
Si tratta di codice javascript offuscato con Packer, il Javascript Compressor di Dean Edwards. Semplice quanto geniale: prende il codice e separa punteggiatura, sintassi e stringhe riarrangiandoli con array, split e replace, in modo da non rendere più leggibile il codice originario.
A prima vista potrebbe sembrare molto difficile risalire al javascript in chiaro, ma ci sono due modi molto semplici per aggirare l’ostacolo.
Il primo metodo sfrutta direttamente il tool stesso, abilitando il pulsante Decode e rendendo editabile l’area di testo dove compare il codice criptato. Basta copiare questa Bookmarklet, andare alla pagina di Packer ed eseguirla. Potremo così incollare il codice nel campo di testo Copy, cliccare su Decode ed ottenere lo script in chiaro nel campo Paste (metodo preso da Yaisb).
Il metodo alternativo è ancora più semplice e attacca la tecnica stessa di offuscamento. Se guardiamo bene, infatti, tutto il codice “criptato” è racchiuso nella funzione eval, la quale si occupa di eseguire e valutare quanto viene passato come argomento. E se la sostituissimo con un bel document.write, cosa credete succederebbe? Semplice, il codice originario verrebbe stampato in chiaro nella nostra pagina, al posto di eseguirlo.
Facile, no? Se volessimo essere ancora più pignoli, possiamo usare l’utilissimo Beautify javascript, tool online per indentare correttamente il codice javascript e renderlo più leggibile.




grazie per il tuo post…
ciao ho provato a usare il secondo metodo pero’ ottengo js un po più comprensibile ma sempre incomprensibile. come mai ?
ciaoo
Mmm… strano. E col primo metodo che cosa succede, invece?
anche col primo… volevo postare un esempio di javascript che mi restituiva ma non me lo fa postare.
Ho visto ora i tuoi commenti nello spam.
Non saprei che dirti… Magari hanno usato un modo differente di codificare il sorgente, una versione più avanzata…