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

Responder a Vinyols Cancelar respuesta