systemadmin.es > Curiosidades > php Easter Egg

php Easter Egg

En el caso que tengamos habilitado el expose_php, podemos añadir una opción a cualquier PHP para que nos muestre una imagen escondida. La cadena es la siguiente:

?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

En la versión de PHP 5.1 y 5.2 tenemos el siguiente logo:

Easter Egg PHP 5.1 y 5.2

Easter Egg PHP 5.1 y 5.2

Mientras que en la versión de PHP 5.3 lo han cambiado por el siguiente:

Easter Egg PHP 5.3

Easter Egg PHP 5.3

Si buscamos la cadena por el código fuente veremos que se encuentra definida en:

ext/standard/info.h:#define PHP_EGG_LOGO_GUID	"PHPE9568F36-D428-11d2-A769-00AA001ACF42"

Dónde además podemos encontrar otras imágenes:

#define PHP_LOGO_GUID             "PHPE9568F34-D428-11d2-A769-00AA001ACF42"
#define PHP_EGG_LOGO_GUID       "PHPE9568F36-D428-11d2-A769-00AA001ACF42"
#define ZEND_LOGO_GUID          "PHPE9568F35-D428-11d2-A769-00AA001ACF42"
#define PHP_CREDITS_GUID  "PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000"

Además, podemos ver que se registra la imágen en main/php_logos.c:

main/php_logos.c:	php_register_info_logo(PHP_EGG_LOGO_GUID, "image/gif", php_egg_logo, sizeof(php_egg_logo));

Además de encontrar una función de PHP que nos indica la cadena para ver el easter egg en main/php_logos.c:

/* {{{ proto string php_egg_logo_guid(void)
   Return the special ID used to request the PHP logo in phpinfo screens*/
PHP_FUNCTION(php_egg_logo_guid)
{
        if (zend_parse_parameters_none() == FAILURE) {
                return;
        }

        RETURN_STRINGL(PHP_EGG_LOGO_GUID, sizeof(PHP_EGG_LOGO_GUID)-1, 1);
}
/* }}} */

Que al ejecutarla nos devuelve la cadena:

# php -r 'echo php_egg_logo_guid();'
PHPE9568F36-D428-11d2-A769-00AA001ACF42

Los logos en si, los podemos encontrar como un listado de bytes en el fichero main/logos.h:

static const unsigned char php_egg_logo[] = {
         71,  73,  70,  56,  57,  97, 120,   0,  67,   0,
        231, 255,   0,  18,  25,  33,  32,  30,  34,  28,
         33,  44,  15,  35,  71,   6,  37,  85,  37,  40,
         47,  34,  41,  53,  41,  40,  43,   9,  47, 109,
(...)

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>