un amigo me encargo que le hiciera una aplicacion en php para su trabajo de titulo (esta estudiando pedagogia en quimica, asi que no es obligatorio que el desarrolle el programa), para proteger el programa de copias descaradas o robos, decidimos ofuscarlo o encriptarlo (la que logremos), los ofuscadores en linea que he encontrado usan base64 (ya se que es facil descifrarlo, pero peor es nada), en un servidor bajo linux la aplicacion corre sin ningun problema, sin embargo al montarla en windows (se requiere portabilidad por lo que estamos usando un xampp portable) tiene los siguientes problemas
1.- todas las php usados quedan con <?<?<?<?<?<?<?<?<? al pie, asi que imaginen como queda una pagina que requiera unos 4 php's
2.-cuando se requiere usar variables de sesion (o sea en toda la aplicacion) se obtiene un error similar a este
Warning: Cannot modify header information - headers already sent by : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code:16) in C:\xampp\htdocs\ruta_aplicacion\archivo.php(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d code(3) : eval()'d
en el manual de php, en la seccion de la funcion eval, indican que para evitar ese error se deben usar las funciones ob_start() y ob_end_clean () (en otra pagina indican que esta ultima debe ser ob_end_flush() de lo contrario no hay salida) sin embargo ya que la primera pagina en usar las variables de sesion es la del logueo, al pasar a la siguiente pagina y hacer la validacion de sesion se devuelve al index.php y arroja error de acceso ilegal (por lo que puedo decir que las funciones ob_* evitan la escritura en variables de sesion)
nota: las funciones ob_ no las probe bajo linux ya que los php's ofuscados trabajan sin problemas
segui buscando otro metodo y encontre estos 2 scripts
phpcodebuster
phpobfuscator
sin embargo ambos utilizan la constante T_ML_COMMENT y si la reemplazo por T_COMMENT o T_DOC_comment (que si son aceptadas), no obtengo resultados
alguna solucion al error del base64 o alguna otra alternativa de ofuscacion/encriptacion (y que no sea el zend o alguna de pago)