Archivo de la etiqueta: quine

Metaprogramación (IV): Programación de virus para código fuente C

Continuando (y muy probablemente terminando ya) con el tema de la metaprogramación, abordaremos todas las ideas introducidas hasta ahora en un artículo publicado en el e-zine sobre virus informáticos 29a (0x29a en hexadecimal es 666 en decimal ;-)). En él, se nos muestra cómo un programa en C podría ser capaz de infectar a otros programas en C no compilados todavía, incluyendo funciones de infección, es decir, convirtiéndolos así mismo en vectores de infección. El artículo tiene ya su tiempo, pero creo que es un buen broche final a esta serie de comentarios e impresiones sobre la programación de programas que programan ;-D

Sigue leyendo

Meta-programación (III): Colección de quines en C

Siguiendo con los artículos anteriores sobre meta-programación y quines, os dejo una recopilación (extraída de varios sitios de quinéfilos como este ) de unos cuantos programas que generan su propio código en varios lenguajes de programación diferentes, para que veáis cómo se entretienen algunos hackers…

Sigue leyendo

Meta-programación (II): Cómo construir nuestros propios quines

En el anterior artículo ya habíamos avanzado brevemente qué es un quine. Tomando la definición de la Wikipedia, en informática, un quine es un programa (un tipo de metaprograma) que produce su código fuente como única salida. Por diversión, algunos hackers intentan desarrollar el quine más corto posible en cualquier lenguaje de programación. Los quines se llaman así por Willard Van Orman Quine (1908-2000), que hizo un estudio extensivo de autoreferencia indirecta y sugirió un caso famoso de paradoja sin autoreferencia directa: “Da como resultado un enunciado falso si es precedido por su cita”. ¿Estoy confundiéndote con tanta palabrería? Pongámonos manos a la obra…

Sigue leyendo

Meta-programación (I): "Reflexiones sobre confiar en la confianza"

Hace unas semanas recibí un email de un investigador del CERT en México preguntándome sobre cómo Ken Thompson (padre de C y de UNIX, ahí es nada 😉 ) comentó en un discurso tras la entrega de los premios de la ACM cómo pudo haber troyanizado todo sistema existente derivado de UNIX, como comenté en mi artículo sobre Virus en GNU/Linux. Mucha otra gente lo ha preguntado y siempre los he remitido al documento original, pero me voy a permitir la licencia de hacer una traducción informal para quienes no se defiendan bien con la lengua de Shakespeare… (las correcciones a la traducción son MUY bienvenidas ;-).

Sigue leyendo