Autor Tema: PHP obfuscator  (Leído 3821 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
PHP obfuscator
« : noviembre 19, 2012, 11:17:12 am »
Guenas guenas,

vengo a ver si me ayudan a test un mini proyecto en el que estoy trabajando.... es un php obfuscator... encoder como le quieran llamar...

Los encoder como zend o ioncube son caros pero seguros, pero para tener algo basico para los developers que no kieren mostrar su codigo a otros esto les podria ayudar un poco para obfuscar los scripts...

El obfuscator es simple y usa dos methodos para obfuscar.. son dos clases primero codifica en base64, luego la otra clase hace otro codigo de la primera.... la primera se puede decodificar facilmente, la segunda cuesta un poco mas...

lo importante de el script es hace un poco mas dificil ver el codigo original en php...

ahora subiendo archivos al server en php no es tan esguro q digamos por ataques q puedan ocurrir, asi q despues que se crea el zip para bajar el archivo que han subido todos los .php files se eliminaran .

aqui les dejo mas o menos lo que hace

- sube un archivo(s)
- pasa la primer clase para obfuscar
- pasa la segunda clase para obfuscar
- zip los archivos
- pueden bajar el zip
- borra todos los archivos .php que se han subido.

ahora no pretendo tambien robar codigos de otras personas, todos los archivos seran eliminados :) ... otra cosa estos obfuscartor tambien son muy usados en el underground para insertar scripts en websites que han sido hackeadas... pero el uso que le de cada persona es el q kiera , y por ultimo no es 100% garantizado q no seran decodificados porq siempre sale un sin oficio mas inteligente q decodifica todo xD.

pueden test , dar ideas , etc etc.

http://xtremenews.info/obfuscator/index.php?guess=svc

comentarios buenos, y no criticar el diseno q es lo q menos busco LOL


-------------------

Acabo de arreglar un bug para bajar el zip....
« Última Modificación: noviembre 19, 2012, 11:54:11 am por moyo18 »

Desconectado stoke

  • Sv Member
  • ***
  • Mensajes: 342
Re:PHP obfuscator
« Respuesta #1 : noviembre 19, 2012, 12:33:32 pm »
Aunque tu digas que no dejas una copia de mi codigo en tu servidor, no te creo :D. Seria mas "confiable" que pueda descargar tu script correrlo en mi web server, y que con una rutina ofusque *.php y guarde una copia del codigo fuente en una directorio X.

Aca te dejo algunos retos amigo,

1.- Cual es el sentido de osfuscar el codigo si siempre existe una manera de revertir el proceso?, desde mi punto de vista base64_encode y eval no me parece para nada ofuscado.

2.- Por que osfuscaria mi codigo con tu script si me sale mas practico encriptarlo con Zend o ionCube?

Suerte con tu proyecto.

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:PHP obfuscator
« Respuesta #2 : noviembre 19, 2012, 12:41:36 pm »
Aunque tu digas que no dejas una copia de mi codigo en tu servidor, no te creo :D. Seria mas "confiable" que pueda descargar tu script correrlo en mi web server, y que con una rutina ofusque *.php y guarde una copia del codigo fuente en una directorio X.

Aca te dejo algunos retos amigo,

1.- Cual es el sentido de osfuscar el codigo si siempre existe una manera de revertir el proceso?, desde mi punto de vista base64_encode y eval no me parece para nada ofuscado.

2.- Por que osfuscaria mi codigo con tu script si me sale mas practico encriptarlo con Zend o ionCube?

Suerte con tu proyecto.


Bueno el proyecto lo tendre abierto, osea podran descargar el sourcecode al final ....

Con respecto a consevar los archivos , no ... no los conservare por la sencilla razon d no son mios... y la otra por seguridad ... recuerda q cualkiera sube una shell y pues se hace fiesta xD .... ademas hay q tener etica profesional xD ....

la otra razon q pones de porq no usar zend o ioncube claro si hay dinero porq no hacerlo... es lo q yo recomendaria 100% ir por un software de pago. Esto es solo para proyectos chicos q le pueden servir mas d algun developer para obfuscar su codigo.

Las clases q estoy usando para obfuscar son 2, agregare otra mas que obfuscara las variables en php tambien... q es una q he encontrado por ahi.

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re:PHP obfuscator
« Respuesta #3 : noviembre 19, 2012, 02:29:04 pm »
Aunque tu digas que no dejas una copia de mi codigo en tu servidor, no te creo :D. Seria mas "confiable" que pueda descargar tu script correrlo en mi web server, y que con una rutina ofusque *.php y guarde una copia del codigo fuente en una directorio X.

Aca te dejo algunos retos amigo,

1.- Cual es el sentido de osfuscar el codigo si siempre existe una manera de revertir el proceso?, desde mi punto de vista base64_encode y eval no me parece para nada ofuscado.

2.- Por que osfuscaria mi codigo con tu script si me sale mas practico encriptarlo con Zend o ionCube?

Suerte con tu proyecto.


Yo hice algo similar solo que en mi caso el código estaba codificado con SHA1, la llave se calculaba al vuelo en tiempo de ejecución utilizando un algoritmo pseudo-aleatorio que utilizaba una semilla en una llave fisica.

No era perfecto obviamente ya que si generabas un error en el codigo adrede podías obtener parte del código, pero.... tenías que tener posesión de la llave física para que el software decodificara.

A cada copia del software se le daba una llave individual con una clave única y el código se generaba al azar para cada cliente.

Si bien no era imposible decodificar el código tenías que tener acceso a tres cosas:

1-El código encriptado en SHA1
2-El archivo llave que no era mas que un monton de letras aleatorias que se recombinaban con el pseudo-algoritmo aleatorio que se generaba usando:
3-Una semilla que estaba guardada en una llave física.

Las llaves físicas que utilizamos te las generan con un rango de direcciones individuales y tenes que programar manualmente llave por llave. Es un poquito tedioso pero si sabes un poquito de C# o cualquier programa con interfaz grafica podes hacer un programa que se encargue de codificar todo lo anterior con un par de clics.

El concepto es el mismo que el usado aquí solo que con un algoritmo de encriptación robusto y varios "componentes" en la cadena, para el que desarrollé solo podes decodificar el código si tenes acceso a las dos llaves, la física y la digital.

Obviamente no era perfecto. Si bien el algoritmo de encriptado era seguro, la llave aleatoria podía ser obtenida por fuerza-bruta, pero esto implicaba analizar un programita en C que se encargaba de realizar el paso de decodificacion de las fuentes.

:)
« Última Modificación: noviembre 19, 2012, 02:35:28 pm por mxgxw »


Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:PHP obfuscator
« Respuesta #4 : noviembre 19, 2012, 02:51:21 pm »
Yo hice algo similar solo que en mi caso el código estaba codificado con SHA1, la llave se calculaba al vuelo en tiempo de ejecución utilizando un algoritmo pseudo-aleatorio que utilizaba una semilla en una llave fisica.

No era perfecto obviamente ya que si generabas un error en el codigo adrede podías obtener parte del código, pero.... tenías que tener posesión de la llave física para que el software decodificara.

A cada copia del software se le daba una llave individual con una clave única y el código se generaba al azar para cada cliente.

Si bien no era imposible decodificar el código tenías que tener acceso a tres cosas:

1-El código encriptado en SHA1
2-El archivo llave que no era mas que un monton de letras aleatorias que se recombinaban con el pseudo-algoritmo aleatorio que se generaba usando:
3-Una semilla que estaba guardada en una llave física.

Las llaves físicas que utilizamos te las generan con un rango de direcciones individuales y tenes que programar manualmente llave por llave. Es un poquito tedioso pero si sabes un poquito de C# o cualquier programa con interfaz grafica podes hacer un programa que se encargue de codificar todo lo anterior con un par de clics.

El concepto es el mismo que el usado aquí solo que con un algoritmo de encriptación robusto y varios "componentes" en la cadena, para el que desarrollé solo podes decodificar el código si tenes acceso a las dos llaves, la física y la digital.

Obviamente no era perfecto. Si bien el algoritmo de encriptado era seguro, la llave aleatoria podía ser obtenida por fuerza-bruta, pero esto implicaba analizar un programita en C que se encargaba de realizar el paso de decodificacion de las fuentes.

:)


Ahi estamos hablando de encriptar el codigo, yo diria que se podria ahcer pero para ello ya seria de tener negocio con eso.

Lo que yo pienso es mas q todo tener el obfuscator para que sea un poco mas dificil de entender para los no developers. Ahora incluyo con las dos clases q se esta usando es un poquito dicifil sacar el codigo original.

las dos clases son open source q encontre y los he intentado decifrar con decoders online y uno d sucuri q es muy bueno y no dan resultados aun... sigo repasando el source code para ver como desobfuscar ... pero por ahora lo mas importante es obfuscar el codigo.


Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re:PHP obfuscator
« Respuesta #5 : noviembre 19, 2012, 04:09:06 pm »

Ahi estamos hablando de encriptar el codigo, yo diria que se podria ahcer pero para ello ya seria de tener negocio con eso.

Lo que yo pienso es mas q todo tener el obfuscator para que sea un poco mas dificil de entender para los no developers. Ahora incluyo con las dos clases q se esta usando es un poquito dicifil sacar el codigo original.

las dos clases son open source q encontre y los he intentado decifrar con decoders online y uno d sucuri q es muy bueno y no dan resultados aun... sigo repasando el source code para ver como desobfuscar ... pero por ahora lo mas importante es obfuscar el codigo.

Tengo entendido que los "mejores" ofuscadores compilan el codigo fuente a un código objeto intermedio y luego vuelven a compilar a PHP. Si bien el código realiza las mismas operaciones pierde completamente el formato original haciendo el análisis del código mucho más complicado.

Las soluciones profesionales de ofuscación tengo entendido ocupan diferentes combinaciones de ofuscacion+encriptado para hacer muy dificil obtener el código original.

Pero de igual manera pienso que las soluciones más robustas son las que combinan encriptado + llaves físicas y/o validación de hardware... Pero pues muchas veces eso es mucho overkill para un plugin de wordpress o cosas asi xD haha

A veces me dan ganas de intentar hacer uno solo por tratar pero que hueva hahaahaha


Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:PHP obfuscator
« Respuesta #6 : noviembre 19, 2012, 09:37:30 pm »
A mi me dan ganas d hacer uno, pero tomaria tiempo, hay q invertir mucho tiempo y no lo tengo... Por eso tengo clases ya hechas y jugando un poco fui modificando para crear lo que tengo hasta ahora. Se corren 3 diferentes obfuscators en un solo archivo... Osea el q lo kiere decifrar tiene q tomarse un poco d tiempo para hacerlo.

Ahora yo he probado con algunos scripts y todo trabaja normal, pero kisiera que aki tambien estuvieran probando y ver q mas se podria hacer aparte de lo q se tiene.

Si encuentran errores me lo hacen saber.

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:PHP obfuscator
« Respuesta #7 : noviembre 20, 2012, 10:45:56 am »
ya lo puse para todos para que lo puedan usar. despues subire el web app a githut.

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re:PHP obfuscator
« Respuesta #8 : noviembre 20, 2012, 11:28:22 am »
aqui esta el obfuscator ...

https://github.com/pl4g4/online-php-obfuscator

feel free to check it xD ....