Bi0[x]iD's WaY oF LiFe

Un blog a 60 pulsaciones por minuto


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!



8 respuestas a «Desofuscando código»

  1. Información Bitacoras.com…

    Si lo deseas, puedes hacer click para valorar este post en Bitacoras.com. Gracias….

  2. Me podrias ayudar con el tema? Soy bastante principiante en esto  y no entiendo como consigues el codigo. Lo editas con?.

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

  4. Buenas.

    Lo editas con tu editor preferido para código o texto plano.

    Intento echarle un vistazo mañana a ver si te puedo ayudar 🙂

  5. 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?

    1. 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.

  6. 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

  7. Estos codigos son muy dificiles de activar, yo tambien tuve serios problemas y tuve que recurrir a ayudar

Responder a marce para miapuestaCancelar respuesta