Cracking

REA

La aparición de Windows 95 junto a la popularización de internet supusieron una nueva revolución para la informática doméstica y empresarial. Las mejoras introducidas en Windows 95 en relación a Windows 3.11 eran muy significativas y la impresión que obtenía el usuario era que se había abandonado MS-DOS para disponer, por fin, de un S.O. gráfico. Estaban equivocados. MS-DOS seguía estando ahí y lo estaría hasta la aparición de Windows 2000.

No BSANo pretendo dar aquí una charla de la historia de las versiones de Windows ni ofrecer “la verdad” sobre el tema. Para eso ya hay otros sitios que han hecho estudios y ofrecen los resultados en la red. Sólo quiero dar unos apuntes que me lleven a donde quiero llegar: “La Escena“.

Windows 95 tuvo un éxito innegable. Su aparente facilidad de uso, la implementación del Plug&Play, favorecida por los acuerdos entre Microsoft y los fabricantes de hardware, y la disponibilidad de software fueron la clave.

El hardware empezó a evolucionar muy rápido y Windows 95 comenzó a flaquear mostrándose altamente inestable y sin posibilidad de admitir los nuevos dispositivos que aparecían en el mercado. Esto llevó a la aparición en 1998 de Windows 98, una versión que corregía muchos errores de su predecesor, añadía soporte para los nuevos dispositivos e incorporaba el sistema de archivos FAT32 que mejoraba la gestión de los discos.

En 2000 Microsoft presentó Windows 2000, basado en Windows NT, hizo desaparecer a MS-DOS de nuestros ordenadores. Con una estabilidad mucho mayor que las ramas 9x (y, por supuestro, que Windows ME que apareció ese año y duró un suspiro por lo malo que era) se impuso rápidamente en el mundo empresarial y fue sustituyendo a Windows 9x en los hogares.

Windows XP, que se comercializó en 2001, fue un acierto por parte de Microsoft. Su cambio de look y muchas mejoras internas hicieron que este S.O. haya llegado hasta 2009 vivito y coleando. Gracias, en parte, al nuevo fracaso de Microsoft con Windows Vista.

Windows siempre ha sido un producto por el que se ha de pagar, y no poco. Aún hoy hay mucha gente que cree que es gratis, bien porque se lo dan instalado al comprar el ordenador o bien porque lo consiguen en la red sin soltar un céntimo. Además, su código es cerrado por lo que nadie, en teoría, sabe lo que se cuece en sus entrañas excepto sus desarrolladores. Esta unión propició que “La Escena” tuviera, y siga teniendo, un papel importante en esta historia.

Hay mucha gente, como yo, que nos gusta saber el porqué de las cosas y la informática es una de esas cosas que pueden parecer mágicas, como era para nuestros abuelos: la llegada a la luna, la radio, el teléfono o la televisión, pero que no lo son. No hay magia aunque sí magos. Y en esta categoría están los “reversers“, gente que aplicando técnicas de ingeniería inversa al software consiguen comprender su funcionamiento, modificar su comportamiento e incluso añadirle nuevas funcionalidades sin necesidad de disponer del código fuente.

En el lado “malo” se encuentran los crackers. Estas “malas” personas dedican sus conocimientos en este campo a la desprotección del software para poder usarlo sin limitaciones y sin pasar por caja. Programas que en el mercado están por encima de los 3000 € y en los que sus desarrolladores han invertido mucho tiempo y dinero en protecciones “sofisticadas” funcionan perfectamente ¡cambiando un sólo byte de su código!.

Estos crackers sueltan por la red los parches (cracks) o generadores de claves (keygen) y los usuarios, que no son tontos (o sí) los usan indiscriminadamente para liberar las versiones limitadas que se pueden obtener en la web de los programas que utilizan.

Pero gracias a la ingeniería inversa se consigue que las compañías de software no nos engañen demasiado. Nos permite denunciar prácticas ilegales como recoger información de los usuarios sin su conocimiento y aprobación o ayudan a descubrir errores en el software que comprometen la seguridad de los datos almacenados.

Mi afán por entender me llevó a sumergirme en “La Escena”, conocí a mucha gente con la que ya no mantengo relación y aprendí muchísimo. En el canal #crackers del IRC-Hispano solíamos reunirnos para compartir conocimientos, nos planteabamos retos y los resolvíamos con o sin ayuda. Allí conocí a una persona peculiar: eSn-mIn, un chico muy joven que se comía el mundo. Recuerdo que preguntaba incesantemente cómo se hace esto o aquello y dónde buscar información. En poco tiempo se convirtió en uno de los mejores, pero una fatalidad hizo que lo perdiéramos en un accidente de tráfico en la nochebuena de 2003. Me cayó un camión de jarros de agua fría por la nuca y sigo emocionandome cuando lo recuerdo.

Yo, como soy bueno (en el sentido de legal) ;) , sólo estudiaba el código de los programas pero no hacía modificaciones en ellos. Como entretenimiento, me dedicaba a resolver crackmes. En este mundillo encontré una web en la que había una especie de concurso (REA: Reverse Engineering Academy) que consistía en resolver crackmes, reversemes y cuestiones matemáticas o científicas en general. En las tres secciones había distintos niveles que teníamos que ir superando. La sección de las cuestiones no tenía ningún interés especial, se podían resolver usando Google. Pero los crackmes y reversemes eran muy interesantes.

Lo apasionante de los crackmes eran los algoritmos utilizados y las técnicas anti-debugging, algunos de ellos son verdaderas obras maestras y al resolverlos se conseguía una satisfacción comparable al orgasmo (he dicho comparable).

Los reversemes consistían en mini-programas con funcionalidad limitada o no implementada que había que liberar e incluir en ellos las funciones que no poseían. Eran ejercicios en los que primero había que programar en código máquina directamente dichas funciones y luego buscarles hueco dentro del propio ejecutable, sin alterar su tamaño, preferentemente, además de alterar el código para conectar las nuevas funciones con los botones u opciones de los menús. Ejemplos: un editor de textos que no implementa la función de imprimir, una calculadora que no hace raíces cuadradas o un cajero automático que no da billetes de 500 € :)

Me lo pasé pipa y me metí tanto en el ajo que conseguí ser el primero en resolver todos los niveles. El premio: la felicitación de los organizadores y de los concursantes. Todo un regalo.

ZenAunque puede resultar un tanto frío el tema de la ingeniería inversa, todo tiene su lado romántico. De lo mucho que leí sobre el asunto hubo algo que me llamó especialmente la atención. Lo escribió +ORC (the Old Red Cracker) y él lo llamaba “Zen cracking”. La técnica consitía en sentir el código (“feel the code”), es decir, dejarse llevar por la intuición más que por la fría lógica a la hora de buscar los puntos sensibles en el software. Cuando se están revisando miles y miles de líneas de código máquina, el aplicar una técnica mecánica aburre al más pintado. Su idea era salir de esto y, cual monje shaolin, dejarse llevar por el código al sitio correcto, al byte preciso que hay que cambiar o donde se produce el error que buscábamos. Por supuesto, es necesaria experiencia, haber visto mucho y variado código y conocer ciertos patrones para que esto funcione. Ya os dije antes que no hay magia en esto sino magos.

14 comentarios en “REA”

  1. Navegando con Internet Explorer Internet Explorer 7.0 en Windows Windows XP

    Una vez más, debo reconocer que no he entendido nada de cuánto relatas, y no porque tu estilo sea farragoso, desordenado, confuso -todo lo contrario- sino por mi ignorancia supina respecto al mundo de las tecnologías.

    Sin embargo, una vez más, debo felicitarte porque más allá de la información precisa que de manera sencilla y clara expones -incluso a aquellos que como yo, estamos en las antípodas de cuánto relatas- has sabido dotar a tu texto de poesía. Leyéndote, las emociones afloran. Has sido capaz de transmitir cuán importante es para ti el mundo de la informática, la tecnología, las matemáticas… y cuánto disfrutas de todo ello. Y a los lectores más avispados, les has regalado algunas pistas, muy sutiles, para que te puedan conocer mejor.

    Me quito el sombrero.

  2. Navegando con Internet Explorer Internet Explorer 7.0 en Windows Windows XP

    Coñes! Puedo aplicar los conocimientos adquiridos en artes marciales a la informática? Haber empezado por ahí! Osssoooo…
    La próxima vez que tenga un “poblema” con el ordenador ya no te daré el coñazo, le ví a meté un fostiazo a la cpu que la voy a dejar mirando a Cuenca (este método no vale para los conquenses, lo siento).
    Eso sí, todo como muy imbuído de filosofía zen ;)
    En serio, y de acuerdo con la Geli, si no fuese por tí sería incapaz de leer dos líneas seguidas sobre informática, porque, aunque tampoco entiendo de qué **** hablas, me encanta.

  3. Navegando con Safari Safari 525.27.1 en Mac OS X Mac OS X 10.5.6

    Miguelón, recuérdame -que soy muy dispersa- que te pregunte por “la escena” la próxima vez que nos veamos… qué misterioso suena!
    Besillos.

  4. Navegando con Mozilla Firefox Mozilla Firefox 3.0.5 en Windows Windows XP

    “La Escena” es un término, usado en el mundo de la informática underground, que engloba a muchas comunidades:

    – La hacking-scene
    – La cracking-scene
    – La demo-scene
    – La warez-scene
    – …

    Hay muchas scenes (comunidades) ahí fuera (o dentro, depende de dónde estés tú). ;)

  5. Navegando con Google Chrome Google Chrome 1.0.154.46 en Windows Windows Vista

    Miguel, no estoy del todo de acuerdo con esto:

    Gracias, en parte, al nuevo fracaso de Microsoft con Windows Vista

    Te diré que tengo bastante experiencia en encontrarme usuarios habituales de Windows que SIEMPRE reniegan de cualquier nueva versión de ese sistema operativo. Cuando salió XP, clamaban por las bondades de 2000, del que habían renegado porque NT les molaba más. Y así siempre.

    Vista es un Windows con una interfaz gráfica nueva, pero es mucho más que eso. Es un Windows más seguro, completamente reescrito en su núcleo, aunque implementando las funcionalidades “clásicas”, integrando aplicaciones básicas, mejorando la estabilidad. Te doy la razón en que no ha resultado tan exitoso como Windows XP a nivel de ventas, pero de eso sin duda la culpa la tiene la propia Microsoft, que parece que abandonó a Vista contra los elementos, que no son muchos, pero sí saben hacerse oír.

    Por otro lado, anotar que, como sabes, está en ciernes Windows 7, la nueva versión cliente del sistema operativo de Microsoft. De momento, y esto también lo sabes, parece basarse en lo bueno de Vista, pero añadiendo funcionalidades, y mejorando el producto en general. Otra cosa será lo que ocurra en el futuro: quién sabe si a Microsoft le entrarán las prisas por sacarlo al mercado y saldrá poco cocinado; o si una vez a la venta decidirán abandonarlo a su suerte. Aunque espero que hayan aprendido de sus errores. No sé.

    Me alegro de que, en cualquier caso, no hagas sangre con Windows. Me parece que una de las cosas que vamos aprendiendo la gente que provenimos de mundos informáticos diferentes es a valorar aunque sea un poco a los de “la acera de enfrente”. Afortunadamente cuando nos vemos las caras nos damos cuenta de que, normalmente, ninguno tiene cuernos y rabo, ni huele a azufre. En todo caso a calçot ;-)

  6. Navegando con Mozilla Firefox Mozilla Firefox 3.0.5 en Ubuntu Linux Ubuntu Linux

    ¿No debería ser al revés?
    ¿Que los usuarios vean las mejoras en cada nueva versión?
    Bueno, como siempre, generalizar en esto no es correcto.

    Pero, es innegable, que Windows XP sigue muy vivo porque Windows Vista ha fracasado. No voy a poner las razones porque hay mucha información en la red. Pero es un hecho.

    Microsoft tuvo que ofrecer downgrades a Windows XP desde Vista por la no aceptación de este S.O. por las empresas y usuarios en general, por los problemas de compatibilidad con el hardware y otras cosas.

    Microsoft va a adelantar el lanzamiento de Windows 7. Creo que es significativo.

    Con Windows 7, sí “parece” que han aprendido la lección, aunque ya deberían haberla aprendido con Windows ME.

    A ver si puedo probar la beta.

    “No a la guerra” :)

  7. Navegando con Safari Safari 525.27.1 en Mac OS X Mac OS X 10.5.6

    ahhhhhhh la La warez-scene … hombre, haber empezao por ahí !!

    por cierto, cuando os habéis hecho mariquitas lo Pani y tu?

  8. Navegando con Google Chrome Google Chrome 1.0.154.46 en Windows Windows Vista

    Para que Lui no piense que hemos cambiado de acera, sólo un mínimo comentario, o más bien una preguntilla sin ánimo de molestar: ¿qué es más fracaso, un sistema que no ha acabado de despegar en sus dos añitos de vida, como Windows Vista, o uno que lleva en la pista esperando el visto bueno de la torre de control desde 1991? Porque si hablamos de fracaso en términos de uso e implantación, a mí no me cabe la menor duda de qué sistema operativo es un fracaso total…

  9. Navegando con Mozilla Firefox Mozilla Firefox 3.0.6 en Windows Windows XP

    ¡No me cambies de acera! Estábamos hablando de las versiones de Windows, ya le tocará el turno al pingüino.
    Pero si quieres hablar de uso e implantación de un S.O. define el entorno, porque, según el que elijas, igual te llevas una sorpresa. ;)

    Pregúntale a Red-Hat cuanto ha facturado, por ejemplo. Yo no lo consideraría fracaso.

    Y creo, pero no me hagas mucho caso, que el marketing de uno y otro S.O. es pelín diferente. :P

    @Lui: Me dejas tu vestido fucsia para esta noche?

  10. Navegando con Internet Explorer Internet Explorer 7.0 en Windows Windows XP

    Eh! Que el fucsia lo tengo yo pedido desde hace mucho! No te va bien a tí el pistacho?

  11. Navegando con Mozilla Firefox Mozilla Firefox 3.0.5 en Ubuntu Linux Ubuntu Linux

    Me puedo hacer una ligera idea de lo que supuso la aparicion de windows 95, pasar de un promp a un entorno grafico…(yo de aquellas ni siquiera habia tocado un ordenador :P)
    No he probado mas alla de unos minutos Win 95, 98 y NT, pero si he usado XP durante un par de años, y a mi por lo menos no me acaba de convencer, por un lado porque no puedo permitirme el precio de muchas de las aplicaciones que me interesan, por otro, me parece un coñazo tener que buscar por la red adelante aplicaciones basicas, la mayoria de las veces sin ningun tipo de garantia (son binarios de origen dudoso o desconocido, esta claro que aunque tenga el codigo fuente no reviso el de todas las aplicaciones que instalo, pero me fio mas de un repositorio de debian o ubuntu que del software que puedas bajarte de todogratis, gratiszone, gratisgratis softonic o tugratisaplicacion…XDD).
    En cuanto a vista, no quiero ofender a nadie, pero me parece un truño, todos los que he probado iban bastante lentos (en maquinas en las que ubuntu vuela), la configuracion por defecto es un autentico coñazo, con ventanitas y avisos constantes, mensajes ambiguos en los avisos, un monton de aplicaciones extra que caducan a los dos meses y valen x€, y sobre todo, tanto en vista como en xp, la administracion del sistema me parece desordenada y poco intuitiva, aparte de que la estructura de directorios del sistema es un caos, para nada comparable al orden y logica de /
    Como anecdota, es ironico que acabara usando GNU/Linux a raiz de una copia de dapper que venia con una revista especializada en windows!!! :D

  12. Navegando con Google Chrome Google Chrome 1.0.154.48 en Windows Windows Vista

    La verdad es que para el usuario el cambio de Windows 3.11 y Ms-dos a Win 95 fue la reostia. Yo no tenía PC aún, mi primer PC ya tenia Win 95, pero habia estado en casa de amigos y habia visto y manejado pcs en otros sitios y la verdad es que cuando me puse el mio y vi Win 95 y lo pude manejar me volví loco. Aquello era el futuro. Podia poner imagenes de fondo de pantalla, tenía menús que se desplegaban y que eran editables donde podia poner las aplicaciones que me diera la gana ordenandolas como me diera la gana, podia ponerle los colorines que quisiera (recuerdo aquella vez que Miguel vino a mi casa y vio todo el menú de windows en verde fosforito combinado con un morado chillón muy chulo… aún no entiendo como no me quedé ciego), podía ponerle sonidos para cada vez uqe hiciera click con el ratón (para ello mi amigo Valen me ayudó soltando un par de hipogritos huracanados para cada vez que ejecutaba algo…), y, llevaba un explorador con un menú en forma de árbol desde donde se podian ver las carpetas de forma muy fácil, cambiarlas de sitio arrastrando (con su contorno y todo xD), entrar en sus propiedades,hacer vistas previas… en fin, miles de cosas que al menos para mi que empezaba eran la repolla en vinagre al cubo.

    Ahora con el Vista yo creo que han tratado de impresionar al “usuario raso” con cosas similares, trucos visuales nuevos, el jodido “aero” que no funciona en el 90% de los PCs con Vista que he visto por falta de recursos, y cambiando algo también la vista y el manejo del menú de inicio (que para mi lo han jodido entero… no tardé ni 2 dias en ponerme la “vista clásica”) y el explorador de windows (aquí probablemente si que han mejorado un poco, cuando te acostumbras es mucho más fácil encontrar ficheros y hacer cosas.

    En cuanto al funcionamiento interno yo de eso no tengo ni idea, pero si que es cierto que el Vista que tengo aqui en el trabajo suele funcionar bien, pero sigue con los tipicos errores de Windows de cosas que dejan de funcionar cuando les da la gana (mi IE7 a veces se abre, a veces no, menos mal que uso el chrome), tener que darle 500 veces a “finalizar tarea” cuando algo va mal y cosas de ese estilo…

    Bueno ya me callo :P

    Un saludo

  13. Navegando con Mozilla Firefox Mozilla Firefox 3.0.6 en Windows Windows XP

    … todo el menú de windows en verde fosforito combinado con un morado chillón muy chulo …

    Sí, sí… muy… chulo

  14. Navegando con Google Chrome Google Chrome 1.0.154.48 en Windows Windows Vista

    … todo el menú de windows en verde fosforito combinado con un morado chillón muy chulo …

    Sí, sí… muy… chulo

    Vamos! era supermegacyberfashion de la muerte! y lo mejor era pinchar en el menú de inicio y que se escuchara al Valen diciendo “muerte!!!”…. que tiempos… ;(

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Antes de enviar el formulario: