The paragraph on code protection is somewhat misleading. While it is correct that the exact source code can not be recreated this does not offer anything in terms of code protection and lures people into a false sense of security. The same was thought of machine code until backward-engineering became so advanced that programs were "rewritten" to change the behaviour of functions or enable/disable them and the same is true for classes.
Overconfidence and "impossibilities" are what people looking for a challenge thrive on. Encryption and obfuscation are ways to make it more difficult but not impossible. As a general rule if it can be executed it can be modified so if you don't want it to be put under the microscope then don't release it in the first place.
Introducción
Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabilidad.
Bcompiler ha sido escrito por varias razones:
- Para codificar un script completamente en una aplicación PHP propietaria
- Para codificar algunas clases y/o funciones en una aplicación PHP propietaria
- Para habilitar la producción de aplicaciones php-gtk que podrían usarse en escritorios clientes, sin la necesidad de un php.exe.
- Para hacer el estudio de viabilidad para un convertidor de PHP a C
La segunda de estas metas se alcanza usando las funciones bcompiler_write_header(), bcompiler_write_class(), bcompiler_write_footer(), bcompiler_read(), y bcompiler_load(). Los archivos de código de bytes pueden ser escritos como no comprimidos o planos. bcompiler_load() Lee un archivo de código de bytes bzip comprimido, el cuál tiende a ser 1/3 del tamaño del archivo original.
Para crear archivos tipo EXE, bcompiler tiene que usarse con un archivo sapi modificado o una versión de PHP que haya sido compilada como un biblioteca compartida. En este escenario, bcompiler lee el código de bytes comprimido del final del archivo exe.
Bcompiler puede mejorar el rendimiento en un 30% cuando se usa solamente con código de bytes sin comprimir. Pero tenga en cuenta que el código de byte sin comprimir puede ser hasta 5 veces más largo que el código fuente original. Usar la comprensión de código de bytes puede ahorrar espacio, pero la descompresión requiere mucho más tiempo que analizar una fuente. bcompiler tampoco realiza ninguna optimización de código de byte, esto podría añadirse en el futuro...
En términos de protección de código es seguro decir que sería imposible recrear el código fuente exacto desde donde se construyó, y sin los comentarios que acompañan al código fuente. Sería inútil usar los códigos de bytes de bcompiler para recrear y modificar una clase. Sin embargo, es posible recuperar información de un archivo de código de bytes contruido con bcompiler - por lo que no ponga sus contraseñas privadas o similares en él.
