RSS Feed

Del ofuscador al konami code

3

junio 18, 2012 by - @MatiasArriola

Cuenta la historia que durante una juntada de fernetjs, estaba tratando de probar nice.js.
Nice.js supuestamente ofusca el código javascript, y lo transforma a ascii art en base a una imagen. Me pareció divertido, y lo quise probar. Más allá de que fui cuidadoso eligiendo la imagen y le dediqué varios minutos, a la hora de elegir el script no quise perder el tiempo, entonces fuí al azar a un tab que tenía abierto, abrí las developer tools de chrome, agarré un script, y lo copié todo. El tab era jquery.com, y me quedé sorprendido cuando ví el siguiente comentario:

// Hehe.

Seguido a eso, el siguiente código (el archivo es custom.js):

if ( window.addEventListener ) {
        var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
        window.addEventListener("keydown", function(e){
                kkeys.push( e.keyCode );
                if ( kkeys.toString().indexOf( konami ) >= 0 )
                        window.location = "http://ejohn.org/apps/hero/";
        }, true);
}

Qué fue lo que hice? Probar la combinación de teclas de esos códigos :38, etc. (arriba, arriba, abajo, abajo, izquierda, derecha, izquierda, derecha, b, a).

Muy buena onda! Por un momento pensé que había descubierto un huevo de pascua en el sitio oficial de jQuery, hasta que lo guglié, y me dí cuenta que Paul Irish ya había hablado de eso 3 años atrás.

Pero bueno, fué muy satisfactorio haber encontrado eso, y el haber tenido la oportunidad de jugar a ese “guitar hero”. La ivestigación continuó.

Konami codes

jQuery no fué ni el último ni el primer sitio en implementar ese “truquito”, más bien conocido como konami code. Un poco de contexto e historia pueden ser encontrados en la wikipedia.
Hay una página que lista sitios implementando konami codes, e inclusive existen bastantes utilidades, plugins de jQuery, y demás.

Konami-js soporta gestures para dispositivos móviles, e incluso existe un plugin de wordpress basado en el mismo.

Gente se preguntará: Qué utilidad tienen estos proyectos? NINGUNA!!!
Muchas veces, solo el hecho de hacer de algo divertido, y de divertirse mientras se lo desarrolla y aprender, justifica los medios.

PD: Cuidado con dónde ejecutan la combinación de teclas ;).


  • http://twitter.com/pepoviola pepo

    Muy bueno, en los comentarios del blog de Paul Irish hay una mejor implementación del código
    http://paulirish.com/2009/cornify-easter-egg-with-jquery/#comment-68011

    Saludos!!

  • Lucas Romero

    Excelente Mati! No había probado el fernet volador jaja!

  • Juan Manuel Fernandez

    Que malandraje! Los correntinos no conocemos esas cosas muy científicas!! jajaja
    Ya lo ví una vez sobre Facebook y admito que al post le viene como anillo al dedo el tag WTF… Algún día lo implementaré cuando sea famoso (?

    PD: Al fernetcito le faltó un método servirPuro()…