Decodificar archivos php encriptados con Base64

Ayer estaba tratando de modificar un tema de WordPress para adaptarlo a mis necesidades y me encontré con que uno de los archivos del mismo no se podía abrir, o mejor dicho, se abría para mostrarme una ristra de caracteres extraña que poco o nada tenía que ver con el contenido esperado. Así que, a investigar.

Algo que me llamó la atención fue una cadena de caracteres al inicio del archivo con un texto como el siguiente:

“<? eval(gzinflate(base64_decode” (sin las comillas).

Esto me dio una pista para comenzar a buscar la herramienta que me permitiera descifrar el contenido. Buscando un poco, encontré que hay varios sitios web que permiten desencriptar este tipo de archivos de manera gratuita y fácil, como este o este otro. Hay que aclarar que, dependiendo de cómo se haya cifrado la información, alguno de los dos sitios puede no servir. Simplemente hacemos pruebas y una vez que obtenemos el resultado deseado (normalmente código en php o cadenas de caracteres legibles para el ser humano), sabremos cual es el bueno. En mi caso, fue el primero. Por lógica, debe aplicar a cualquier tipo de archivo con contenido texto que haya sido encriptado con esta técnica.

Para descifrarlo, basta con copiar y pegar el contenido a tratar, escoger la opción “Decode” (también se puede codificar) e iniciar el proceso. El resultado aparecerá en una ventana adicional o en la misma que hayamos usado para poner el código original.

Por último, una nota personal. Me molestó mucho que los autores del tema que estaba tratando de modificar trataran de evitar, por medios poco ortodoxos, que la línea donde constaba su autoría fuera modificada o eliminada del mismo, y por esto eligieron encriptar su contenido. Desde mi punto de vista, es una manera algo agresiva de “pedir” a quien lo use (porque es gratuito) que no lo modifique, cuando normalmente basta incluír un comentario dentro del código pidiéndolo, lo cual es una práctica generalmente aceptada dentro de la comunidad de desarrollo de WordPress. Si tanto les preocupa el plagio, el venderlo es una buena manera de paliar sus efectos.

Enlaces Directos:

Base64 Decoder Online

Base64 Decode

17 comentarios

  1. Yo estoy pasando el mismo problema este, y no encuentro solución.
    Ya entre a las paginas que proporcionas y no logro decodificar el contenido del footer.php.
    Eh subido el archivo por si quieres darle un vistazo http://www.megaupload.com/?d=LN885718
    De antemano muy agradecido por tu ayuda.

    Salu2

  2. Hola emom,

    Revisé el archivo pero al parecer no está encriptado en Base64, por lo que las paginas mencionadas en el post no funcionan para este caso. Puede ser que esté usando otra técnica de encriptado, pero no veo ninguna cadena de caracteres que la identifique. Puedes probar a buscar “encrypt php files” o “decrypt php files” en Google o tu buscador favorito y ver que resultados aparecen. Seguro que encuentras alguna utilidad que te permita ver el contenido.

    Cuéntanos por favor si logras avanzar.

    Saludos.

  3. emom:

    En el post que encontraste hay instrucciones detalladas para desencriptar el archivo, escritas por Otto, para que lo hagas tu mismo:

    So that I don’t have to keep doing this all the time, I’ll explain the method.

    This is for the most common encoded method I’ve seen. This is the method that starts with $o=”blah blah.,., like the last two did.

    1. Make a copy of the php file. Call it temp.php. Open it in a text editor.

    2. Use search replace to find the semi-colons and replace them with semi-colons followed by a carriage return. In TextPad, I enable regular expressions and replace ; with ;\n . Easy.

    3. You’ll get three lines of code. The second one starts with ‘eval’. Change that to ‘echo’ instead.

    4. Run the php file in php. On the command line, this looks like “php temp.php”. You can also do it in a website/browser if you like.

    5. You’ll get a big long line of code with a lot of $lllll stuff in it. Copy all that and paste it back in to the original file. You’re going to REPLACE the entire “echo” line with it. But only that line, you still need to have the $o=”blah” line at the top of the file.

    6. Do the semi-colon replace thing again to get a lot of lines instead of one long one.

    7. Right at the end, there’s a line that looks like eval($lllllllll); or similar, all by itself. Change that eval to an echo.

    8. Run it again. Voila, you should have your unencrypted code now. Copy and paste it where you want it.

    There are other obfuscation methods, but this one seems to be very commonplace, as most of the code people send me use it.

    Dinos si te sirvió. Saludos!

  4. Yo copie uno de los codigos decodificados ya posteado, que sinceramente lei esto pero para ingles no soy muy bueno, usando el Google traductor no me lo traduce de una forma entendible. Si tu puedes ayudar a darle una mejor traducción creo que podria intentar de nuevo.

    Gracias!

    Salu2

  5. Hola Álvaro… Me alegra encontrar este blog, jejeje, ando con el mismo problema. Me he lanzado a crear un blog y he rebuscado un theme para WordPress interesante.

    Me pasa lo mismo que comentas, es un theme gratuito pero le han puesto una programación PHP que llama a un archivo encriptado que controla que no se retire el copyright del footer. Me parece una práctica absurda la verdad, porque va en contra de los principios de compartir que pululan por la red y que tan bien conozco como usuario de Joomla, Drupal o WordPress… Además, que para obligar de esa manera mejor que pidieran directamente un coste aunque sea testimonial. Y bueno, que en última instancia entendería que quieran mantener su firma, pero es que yo que piloto un poco del asunto estoy variando el template de arriba a abajo (no me gusta ser igual que los demás) con lo cual llega un punto que del original ni los colores, vamos que no se parece nada. Por lo tanto no entiendo la obligación al copy, o al menos que me dejarán añadir el mío, no?

    Además, mi caso es peor. En este theme han rizado el rizo. Resulta que con la misma programación encriptada han puesto que la foto del header sea una en concreto. Ahora no puedo cambiarle el nombre y lo que es peor tampoco la extensión… O sea, que siendo gratuito, no puedo ni poner un .png, o un .gif o un .swf si yo quiero, tengo que poner un .jpg y con el mismo nombre… Demasiado yo creo…

    No suelo “retirar” firmas ni “robar” el trabajo de otros, pero en este caso me parece tremendo el tema. El theme me viene muy bien porque la distribución es justo la que quiero y he hecho un trabajo tremendo ya para modificarlo, me he hecho a la idea de que mi theme sea así…

    Ojalá pudieras echarme un cable, porque no sé mucho de encriptación… He probado las tools que recomiendas a parte de alguna otra, pero nada, sigo extrayendo código encriptado… Ya no se que hacer. He leído que a veces hay que desencriptar varias veces, pero nada…

    Saludos y perdón por el ladrillo (y por revivir un hilo tan antiguo)

  6. Hola Vic,

    He visto que últimamente los desarrolladores de temas para WordPress están empleando cada vez más formas poco ortodoxas para asegurarse algo de publicidad. Sin embargo, los métodos que conozco son los que están consignados en este post. No sé si estarán usando otras técnicas más avanzadas para evitar el “desencriptado” de estos archivos php, pero no creo que nadie más haya tenido estos problemas. Has buscado en algún foro especializado?

    Saludos.

  7. Si si… Las herramientas que consignas son las más habituales, pero nada… Por más que le meto las cadenas que van entre comillas después de eval(base64_decode(” “)); ?> Nada, no me sale nada… En principio deberían servir pero no me sale nada con sentido…

    No sé por donde tirar…

  8. Alvaro, ayudame a desencriptar este código de footer de wordpress:
    No me sale. Había una pagina-foro en la que varios usuarios te hacian el favor, pero no la encuentro. Gracias

    JFD86mT86mT86mtZYwafi7JZY+L/XNq4JtDnQIZ6QaDnJMB2JM0RJFD8pPT86FoB6v52JM0Ah+J/YNqNVbDIEcVzE+q4Y7QMkx04EfJZXcd4JFoB6mT86FoB6vBIpWoB6FoB6m3BhuBf6tQNUqE2h79Buw/pVZEZe+QQkiTLXcVgcFaKaaZGyw5KSPJ8uag7EOQf6qkTYZJHdILVqbkWpOYtuW/mUWQAYPWfSvkTdIVFQqExuFZhuWLVpIDdqaJpabacat/Ecwb2XNQZEwk4ycgGU+tRU7TLYfVWkiE7jxZH6mFM6PdtVOY5euAzJMIghuICEwVAU7VZhvQ86m3BpPT86m3geNaNXcB4JFD86mT86mT86vICEcV4UM3fvdIoSNQgkO598vFrSuTZUwd90NVzUfQ/ycKZYO09SuWlmd4J8vDIyiXl0mB/SuW9EcKI0vVOUNKWXcZREi09SuWlvdIVv9IVv9IoE+ZN0+ZI8uJwUNDWEi0289WhvdIoE+ZN0+ZI8uJwUNDWEi0rk7J/YxTZY20lmd4JvdIoE+ZN0+ZI8uJwUNDWEi0rXNDRk+aRkv0lmd4JvdIJJPA9ycX9hv3/EfaRX7QgUNKnEi/gY7QPhvkIjcK/UcZOi7VgE+a2Xi0fhuTonv3/ExZRXctgXtDPycQZXwbMhvk+UNDWEi0fhu3g0m49eNaOy+o9JM3Vv9IJvdIfeMTZUwQgEOA9eNaOy+o9JBIJvpBzE+ZN823o0uWr0+aREv3OEwDzk+aMScVzUfQZUfd9SuWlmd4JvdIoYvTgEmW2XNDBjiJgEN/W0OKmU7TKYwZfyxd9JwVzYxIC0vYC0+aOy+o9E+bWEu92cu0geM3CEcV4UM3f0vErycQIU7dC0mL/0+/MEcXD02YC0+JAUNkgUwEzhvktYwBfhpA9eNaOy+o9JM0lJPA9XwLzENZREwo4JNK/UcqfhpA9eNaOy+o9JPBzXp5A0FbAUvTuyck4kx69qwaPEiJNEcdR0vTdU7kZYwaI0+JK0mL/0+/MEcXD0w/Wkx3HSMD7k7YREfJZEutBYwaryiarSikzYwQBYwaPYMtWy+arEi6RXNDr02TMEcBD0wQzEwDAU+D70OK+YwaZ0bkzYwQBYwaPYMTqy+arEi6oSNFl8vDB89WhvdIoSNQgkO598vFrSuTZUwd90NEzU7QZY2t7YwbBY+aM0vWr89WhvpBzE+ZN823o0uWr0+aREv3OEwDzk+aM0vWr89IJmd4JvdIJmd4JJPA9ycKOUxaIEu/qQqtdpFbqQaTTaF99S23fSNZRXNLtE+aPS7VOYwZBkx6RY+/BJMIC0mrZXN/z0vYVv9IfeMT7YbDwUNDWEi04hpA9eNaOy+o9JBIVvOBzXwDIjp5VvOBzyxQrUm5feB==

  9. Hola amigos, efectivamente cuando un codigo php aparenta estar protegido pero comtiene la funcion encode_base64, ese script se puede desencriptar facilmente, pues no esta ofuscado unicamente esta encriptado lo cual es super facil de desencriptar haciendo asi que unicamente regalemos nuestro codigo fuente, pues aunque a la vista parece dificil, el codigo original se puede obtener facilmente con solo colocarle la funcion inversa de base64 y eval, que cualquier programador lo podria hacer, por eso lo mas recomendado y los mas seguro es hacer una ofuscacion profesional de tu codigo php que consistiria en hacer el codigo completamente ilegible y sin posibilidad de desencriptarlo ni siquiera por ti mismo, una ofuscacion proefisonal, consiste efectivamente, en renombrar todas las variables y funciones a cadenas de caracteres rando , larguisimas y sin sentdio formadas al azar, agregar al codigo varias variables sin sentido de forma aleatoria, quitar todos los comentarios, todos los espacios, enteres, lineas en blanco, y dejar el codigo final en una sola linea recta, esto SI seria proteger nuestro codigo PHP, y entonces cuando ya nuestro codigo esta ofuscado de manera profesioanal, si queremos agregar un nivel de proteccion mayor, entonces si podriamos encriptar el codigo ofuscado, de esa forma si podriamos estar seguros de haber protegido al maximo nuestro codigo php, nosostros utilizamos dos paginas super seguras y confiables, para proteger nuestros scrips php de forma rapida y segura, con todos los detalles descritos aqui, pues ofuscar un codigo web de forma profesional de forma manual es un proceso que puede consumir varias horas, por eso para ofuscar codigos php en cuestion de segundos, el sitio que utilizamos es: http://www.ofuscarphp.com y luego despues de haber ofuscado el codigo, para asegurarnos que el codigo quedara protegido al maximo, encriptamos el codigo ya ofuscado en: http://www.protegerphp.info, bueno amigos, espero les sirvan estos tips y haberles aclarado la direfencia entre ofuscar y encriptar, saludos !

Los comentarios están desactivados.