Archivo de la etiqueta: ensamblador

Técnicas anti-debugging sencillas para GNU/Linux

En este artículo repasaremos unas cuantas técnicas anti-debugging que se suelen utilizar para evitar que nuestros programas sean trazados. Muchas de estas ideas, bonitas por su sencillez, han sido recolectadas de varios documentos escritos por gente importante en este campo como Silvio Césare o Iñaki López. El mundo del anti-debugging es apasionante: la eterna lucha entre el cazador y la huidiza presa, que gira en espiral hasta no poder distinguir si es el depurador quién ha sido cazado y engañado por el programa, o si finalmente quien traza el programa es capaz de seguir su ejecución paso a paso. Está claro que ninguna de estas técnicas evitarán que alguien con conocimientos trace vuestros programas, pero es curioso ver como tan pocas líneas pueden complicar la vida a muchos analistas novatos 😉

Sigue leyendo

Liposucciones de bytes

Hace unos meses, a raíz de un correo de Jesús Sanz comentando la mítica entrevista a BJarne Stroustrup , hicimos una pequeña prueba de cuánto podría engordar un “Hola, mundo!” en función del compilador y lenguaje de programación que utilices. De la exageración -casi irreal hoy en día- de 2.1 MB de ejecutable que prácticamente no hace nada (digo “casi irreal” porque he visto ejecutables que no hacían prácticamente nada más que lanzarse a ejecución con lorzas de bytes similares a esas), llegamos a los 177 bytes de “Hola, mundo!” (aunque estoy convencido de que se puede rebajar bastante más, y no me refiero a usar el formato COM, lenguajes interpretados o trucos similares :-D).

Veamos cómo fue la “operación bikini” con nuestros programas…

Sigue leyendo

Charla de Introducción al cracking en GNU/Linux

Pongo a vuestra disposición el material de la charla que dí sobre cracking en GNU/Linux dentro de los Cursillos de Julio del e-ghost, el grupo de Software Libre de la Universidad de Deusto. Lo de siempre, si tenéis cosas que añadir o comentar, estaré encantado de escucharos 😉
Sigue leyendo

Crack me if you dare!

¿Alguna vez te has preguntado cómo puede haber alguien capaz de hacer un generador de números de serie válidos para un determinado programa protegido? ¿Cómo se las han ingeniado para conseguir que un juego ya no compruebe si hay un disco llave? Muchos internautas usan a diario herramientas programadas por crackers, programadores que disfrutan rompiendo medidas de protección software. ¿Cómo se convierte un programador normal en un cracker?

Sigue leyendo

Virus en GNU/Linux

Es muy probable que hayas leído que en GNU/Linux es imposible que haya virus. Es un error, hacer un virus normalmente no es tan depediente de plataforma como para que haya una sola plataforma que se libre de ellos. En este artículo veremos qué cosas se pueden hacer para que, desde el punto de vista de un atacante, minimizar los riesgos de conexión desde y hacia el interior de la red.

Sigue leyendo