Categorías
código abierto Docencia Mecus Mundo 2.0 programación WordPress

Desofuscando código

(Publicado originalmente en Mecus.es. Seguid allí los comentarios.)

Molesta bastante estar buscando códigos Open Source y encontrar que algo que te gusta está escrito por un programador de código abierto relativo. Relativo, porque piensa que no vas a respetar su obra y decide ofuscar la parte del código en la que están los créditos.

Sobre estos programadores hay tres cosas que decir:

  1. No tienen ni idea de lo que significa Software Libre / Código Abierto. Esa forma de actuar es contraria al movimiento y lo único que hace es darles mala fama personal.
  2. No son buenos programadores. Lo siento, una persona que pone etiquetas de apertura y cierre en distintas páginas con la intención de liar no se puede considerar un buen programador.
  3. Están haciendo el tonto.

Si alguna vez te ha tocado lidiar con algún código ofuscado, ya sabes que normalmente empiezan por ?> (la orden que cierra un trozo de código de php) para intentar liar el tema mucho más (para alguien que no sepa mucho de programación en PHP, pueden ser horas perdidas por esos dos caracteres).

¡Fuf! da miedo ver estos códigos. Vamos a utilizar como ejemplo el footer.php del tema Taurus:

Pero si sabes algo de php, probablemente conocerás la función echo y la función htmlspecialchars (y te será fácil utilizarlas las dos a la vez).

echo htmlspecialchars();

Si las unimos delante de nuestro trozo de código anterior (eliminando el eval) en una página .php:

obtenemos:

?>

is proudly powered by WordPress | T aurus WordPress Theme from Typelinks Web Directory & ToddW skin deep Entries (RSS) and Comments (RSS).

Ahora sólo tenemos que sustituir este código por el que está en nuestro footer.php y ajustar lo que necesitemos (además de darle un repasito tabulando y poniendo retornos de carro, que nos ayudarán mucho cuando tengamos que volver a mirar la página).

¿Os ha pasado alguna vez? ¿Os habéis encontrado con código ofuscado?

Ya sabéis. ¡Nunca os olvidéis de htmlspecialchars!

Por Rafa Poveda

Rafa Poveda es un evangelista del software libre y en concreto de WordPress, software con el que lleva trabajando desde 2007.
Actualmente es CTO de MyTinySecrets LTD y Jefe de proyectos en Pixelated Heart, donde enseña a otras compañías a comunicarse y a tener una presencia online utilizando WordPress como su herramienta principal. También trabaja enseñando WordPress dando clases en masters y cursos in-company para desarrolladores.

8 respuestas a «Desofuscando código»

<?php
$o=»QAAADjtjbnEnZGtmdHQ6JWRrYgIGZnUlOTsoAUA5Cg0KDQ4AvwFvbkgDcQLDCg0Ewm5jOiVhaGhzYgSgBEGgAAFWdwWgdHN1aGlgOSFkaHd+PAAAJzs4d293J2Jkb2gnY2ZzYgBALyBeIC48Jzg5AZRla2hgbmkAlGFoLyBpZmpiAbM7KAQ0Jwm3Q2IAAHRuYGliYydlfic7ZidvdWIAAGE6JW9zc3c9KChwcHApdHcAAGh1c3Rwb2hrYnRma2IpZGYAICUnc25za2I6JVQBsidDbnViAQJkc2h1fiU5AS07KGY5JycMkQ4QHkRoYwZQZmljJ1RydwORAOAHPwcyagAwbmBvc35gdW53KQwhBwtuaWAnAXtAaGhjdCdUB0BiB0QBbA4AB5B7DR8NEIAABehkaGoobGliYipldWZkYnQKTilvc2oG1kwBgCdFAYIlOQDYGpANUXtgACcF3wXRaHJpc2ZuaWhmbGhycxCmYW5zHKB0KWRoBYdFImAnTwJgCzAleBA5AOkS0RKxGcU7KGVoY34h8A==»;eval(base64_decode(«JGxsbD0wO2V2YWwoYmFzZTY0X2RlY29kZSgiSkd4c2JHeHNiR3hzYkd4c1BTZGlZWE5sTmpSZlpHVmpiMlJsSnpzPSIpKTskbGw9MDtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd3OUoyOXlaQ2M3IikpOyRsbGxsPTA7JGxsbGxsPTM7ZXZhbCgkbGxsbGxsbGxsbGwoIkpHdzlKR3hzYkd4c2JHeHNiR3hzS0NSdktUcz0iKSk7JGxsbGxsbGw9MDskbGxsbGxsPSgkbGxsbGxsbGxsbCgkbFsxXSk8PDgpKyRsbGxsbGxsbGxsKCRsWzJdKTtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd4c2JHdzlKM04wY214bGJpYzciKSk7JGxsbGxsbGxsbD0xNjskbGxsbGxsbGw9IiI7Zm9yKDskbGxsbGw8JGxsbGxsbGxsbGxsbGwoJGwpOyl7aWYoJGxsbGxsbGxsbD09MCl7JGxsbGxsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8OCk7JGxsbGxsbCs9JGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTskbGxsbGxsbGxsPTE2O31pZigkbGxsbGxsJjB4ODAwMCl7JGxsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8NCk7JGxsbCs9KCRsbGxsbGxsbGxsKCRsWyRsbGxsbF0pPj40KTtpZigkbGxsKXskbGw9KCRsbGxsbGxsbGxsKCRsWyRsbGxsbCsrXSkmMHgwZikrMztmb3IoJGxsbGw9MDskbGxsbDwkbGw7JGxsbGwrKykkbGxsbGxsbGxbJGxsbGxsbGwrJGxsbGxdPSRsbGxsbGxsbFskbGxsbGxsbC0kbGxsKyRsbGxsXTskbGxsbGxsbCs9JGxsO31lbHNleyRsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8OCk7JGxsKz0kbGxsbGxsbGxsbCgkbFskbGxsbGwrK10pKzE2O2ZvcigkbGxsbD0wOyRsbGxsPCRsbDskbGxsbGxsbGxbJGxsbGxsbGwrJGxsbGwrK109JGxsbGxsbGxsbGwoJGxbJGxsbGxsXSkpOyRsbGxsbCsrOyRsbGxsbGxsKz0kbGw7fX1lbHNlJGxsbGxsbGxsWyRsbGxsbGxsKytdPSRsbGxsbGxsbGxsKCRsWyRsbGxsbCsrXSk7JGxsbGxsbDw8PTE7JGxsbGxsbGxsbC0tO31ldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd4c2JEMG5ZMmh5SnpzPSIpKTskbGxsbGw9MDtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkQwaVB5SXVKR3hzYkd4c2JHeHNiR3hzYkNnMk1pazciKSk7JGxsbGxsbGxsbGw9IiI7Zm9yKDskbGxsbGw8JGxsbGxsbGw7KXskbGxsbGxsbGxsbC49JGxsbGxsbGxsbGxsbCgkbGxsbGxsbGxbJGxsbGxsKytdXjB4MDcpO31ldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkM0OUpHeHNiR3hzYkd4c2JHd3VKR3hzYkd4c2JHeHNiR3hzYkNnMk1Da3VJajhpT3c9PSIpKTtldmFsKCRsbGxsbGxsbGwpOw==»));return;?>

Muy buena to ayuda!!!
Me pasa algo con un codigo ofuscado. No podia modificar el footer.php porque hay codigo enlazado supongo en setings.php que maneja el footer.php como si en realidad footer estuviera para camuflar solamente. Yo no quiero quitarle el credito a nadie pero, quiero poner alli mi propio servicio de hosting.
la liena en settings.php comienza con $theTrackbacks =
algun consejo?

Lo primero sería que buscaras qué hay dentro de la variable $theTrackbacks y dónde se utiliza, para poder ir modificando o añadiendo código donde te interese.
Si eliminas todas las variables y código ofuscado, tendrás toda la plantilla preparada para editar. Te llevará un rato, pero te merecerá la pena.

Su ayuda por favor:
Tengo la siguiente porción de codigo:
<?php
$o="QAAAJztjbnEnZGtmdHQ6JWRrYgIFZnUlOTsoAUA5DQ4ODQ4Asw4AsCAMDQ0Com5jOiVhaGhzYgKAATBmJwAAb3ViYTolb3Nzdz0oKHNodwAAcHdzb2JqYnQpZGhqKH1uaQCAamZgKCUnOV0Aoip1YmNyfyeAAAIiOyhmOSdjYnRuYGliYydlEAB+JzsE3HBiZW9odHNuaWBgYjBPYmwFEwSgUGJlJ08BgydAAZEEkgrhCtPAIACpCiA4d293J3B3WAtTLy48JzgAgDkNOyhlaGN+AIFvc2prOScNYAAnABEAYg==";eval(base64_decode("JGxsbD0wO2V2YWwoYmFzZTY0X2RlY29kZSgiSkd4c2JHeHNiR3hzYkd4c1BTZGlZWE5sTmpSZlpHVmpiMlJsSnpzPSIpKTskbGw9MDtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd3OUoyOXlaQ2M3IikpOyRsbGxsPTA7JGxsbGxsPTM7ZXZhbCgkbGxsbGxsbGxsbGwoIkpHdzlKR3hzYkd4c2JHeHNiR3hzS0NSdktUcz0iKSk7JGxsbGxsbGw9MDskbGxsbGxsPSgkbGxsbGxsbGxsbCgkbFsxXSk8PDgpKyRsbGxsbGxsbGxsKCRsWzJdKTtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd4c2JHdzlKM04wY214bGJpYzciKSk7JGxsbGxsbGxsbD0xNjskbGxsbGxsbGw9IiI7Zm9yKDskbGxsbGw8JGxsbGxsbGxsbGxsbGwoJGwpOyl7aWYoJGxsbGxsbGxsbD09MCl7JGxsbGxsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8OCk7JGxsbGxsbCs9JGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTskbGxsbGxsbGxsPTE2O31pZigkbGxsbGxsJjB4ODAwMCl7JGxsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8NCk7JGxsbCs9KCRsbGxsbGxsbGxsKCRsWyRsbGxsbF0pPj40KTtpZigkbGxsKXskbGw9KCRsbGxsbGxsbGxsKCRsWyRsbGxsbCsrXSkmMHgwZikrMztmb3IoJGxsbGw9MDskbGxsbDwkbGw7JGxsbGwrKykkbGxsbGxsbGxbJGxsbGxsbGwrJGxsbGxdPSRsbGxsbGxsbFskbGxsbGxsbC0kbGxsKyRsbGxsXTskbGxsbGxsbCs9JGxsO31lbHNleyRsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8OCk7JGxsKz0kbGxsbGxsbGxsbCgkbFskbGxsbGwrK10pKzE2O2ZvcigkbGxsbD0wOyRsbGxsPCRsbDskbGxsbGxsbGxbJGxsbGxsbGwrJGxsbGwrK109JGxsbGxsbGxsbGwoJGxbJGxsbGxsXSkpOyRsbGxsbCsrOyRsbGxsbGxsKz0kbGw7fX1lbHNlJGxsbGxsbGxsWyRsbGxsbGxsKytdPSRsbGxsbGxsbGxsKCRsWyRsbGxsbCsrXSk7JGxsbGxsbDw8PTE7JGxsbGxsbGxsbC0tO31ldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd4c2JEMG5ZMmh5SnpzPSIpKTskbGxsbGw9MDtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkQwaVB5SXVKR3hzYkd4c2JHeHNiR3hzYkNnMk1pazciKSk7JGxsbGxsbGxsbGw9IiI7Zm9yKDskbGxsbGw8JGxsbGxsbGw7KXskbGxsbGxsbGxsbC49JGxsbGxsbGxsbGxsbCgkbGxsbGxsbGxbJGxsbGxsKytdXjB4MDcpO31ldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkM0OUpHeHNiR3hzYkd4c2JHd3VKR3hzYkd4c2JHeHNiR3hzYkNnMk1Da3VJajhpT3c9PSIpKTtldmFsKCRsbGxsbGxsbGwpOw=="));return;?>

Como puedo obtener el código real, he intentado de varias formas sin resultados

Deja un comentario