¿Qué tan seguro es el código compilado de ionCube?

4

Uso ionCube para mantener el código que escribo oculto para mis clientes.

Si almacenaría una contraseña dentro del código y la compilaría (no cifraría) con el codificador ionCube, ¿sería posible que un posible pirata informático obtuviera esa contraseña?

Por ejemplo, ¿es posible aplicar ingeniería inversa a partes del código PHP compilado con ionCube?

O, podría enviar comandos como get_defined_vars() en una página que estaba compilado, si tiene los archivos fuente encriptados completos?

    
pregunta rubo77 25.06.2013 - 12:43
fuente

3 respuestas

7

Sí, es posible aplicar ingeniería inversa a cualquier cosa que se esté ejecutando dentro de una computadora. Siempre se cargará, en algún momento, en la memoria, momento en el que no estará encriptado / decodificado / descomprimido / e.t.c., de modo que el procesador pueda manejar dicho código.

En su caso, se utilizará una contraseña que esté codificada en una variable. Y así se puede usar, primero será sin cifrar ...

    
respondido por el woliveirajr 25.06.2013 - 18:24
fuente
1

Aviso: El autor de esta respuesta está afiliado a ionCube. Tenga en cuenta que las respuestas y los comentarios enviados por los empleados de ionCube, aunque con buena intención, pueden estar sujetos a conflictos de interés.

Las respuestas aquí son buenas, aunque pensamientos como "cualquier cliente entrometido no tendría muchos problemas para extraer la clave de cifrado de su código compilado" se alarga un poco porque los usuarios finales e incluso la mayoría de los desarrolladores de PHP carecen del conocimiento requerido en términos de modificar el motor de PHP para exponer datos de tiempo de ejecución de cualquier manera útil.

La protección de bytecode se basa en la compilación de código en un idioma diferente, el bytecode, y realiza los mejores esfuerzos para hacer que el bytecode y los metadatos sean difíciles y costosos de descubrir, así como para comprender si uno lo obtiene. ionCube compila el código, usa varias técnicas para proteger el bytecode y usa un motor de ejecución PHP no estándar para poder usar el bytecode que difiere del bytecode que PHP normalmente produciría. Esto explica el tamaño relativamente grande del componente del cargador en tiempo de ejecución en comparación con el mismo de otras soluciones.

El uso de funciones de PHP como get_defined_vars() que usted menciona puede no ser posible porque los archivos pueden codificarse para que funcionen solo con archivos codificados producidos por la misma copia del codificador, y fallar si un archivo codificado fue reemplazado por Uno no codificado. De manera similar, el uso de la ofuscación de variables puede alterar los resultados de tales funciones.

Sin embargo, hay limitaciones a lo que es posible con PHP de fuente abierta, así como compensaciones para equilibrar el objetivo de la protección con el rendimiento en tiempo de ejecución y la compatibilidad con las instalaciones estándar, en particular, los servidores compartidos. Mientras que las contraseñas de mysqli_connect() , por ejemplo, pueden estar bien protegidas, un pirata informático podría modificar la biblioteca mysql o el contenedor de la biblioteca mysqli de PHP y recompilar PHP para exponer la contraseña en tiempo de ejecución. Sin embargo, esto puede no ser un problema en la práctica, y si lo fuera, hay formas de aumentar la seguridad siempre que no sea necesaria la compatibilidad con las instalaciones predeterminadas de PHP. Se recomienda ponerse en contacto con ionCube para obtener información sobre las estrategias que mejor se adapten a su caso de uso, y es posible que descubra posibilidades no publicitadas de las que no estaría al tanto.

    
respondido por el Nick 29.06.2013 - 20:39
fuente
1

No es muy seguro, pero puede usarlo para evitar interferencias externas. Diré que es menos del 50% seguro del 100%. Hay muchas herramientas en Internet para descompilar parcialmente versiones anteriores de ionCube.

Un ejemplo: decodificador ionCube

Le recomiendo que elija otras herramientas de cifrado para proteger su código.

    
respondido por el Jijo John 01.07.2013 - 19:02
fuente

Lea otras preguntas en las etiquetas