Estoy lidiando con un trozo muy desagradable de código de terceros en medio de una instalación de Magento, y estoy teniendo un pequeño problema para seguir sus hilos. Aquí hay un mensaje de error que estoy viendo:¿Cómo evalúa PHP() los números de línea?
PHP Parse error: syntax error, unexpected ']' in /chroot/home/user/example.com/html/dev4/app/code/local/company/PluginName/Model/Module/License/Light/Performer/Reader.php(36) : eval()'d code(18) : eval()'d code(1302) : eval()'d code on line 1
He identificado el inicio de la cadena eval() en Reader.php
, y está en la línea 36. Así son esos números entre paréntesis después, también acaba de referencias dentro de la línea a grandes bloques de texto? Me inclino a creerlo, pero no puedo entenderlo por mi cuenta. Si ese es el caso, ese eval()'d code(1302)
parece particularmente grave. D:
Daría más contexto, pero el estado de la licencia del código no es muy claro, así que todo lo que puedo dar es que esta cadena triple-eval() está actualmente rompiendo cosas, y que la segunda capa de se construye de esta manera:
$s = "$BLOCK_OF_SCRAMBLED_TEXT"
$s2 = '';
for ($i=0;($i+0xB-1)<strlen($s);$i+=11) {
for ($k = 013-1 ; $k > -1 ; --$k) {
$s2 .= $s[$i+$k];
}
}
eval($s2);
Cuando SWIZZLE ese bloque fuera del flujo del programa de Magento, $s2
contiene cosas preciosas como -
if($license->getModule()->getDecode()) {
$source = base64_decode($source);
}
...
list($source) = explode("PERFORMER_CLASS_CREATED",$source,2);
$source .= " */";
ob_start();
eval($source);
ob_end_clean();
así que: ¿cómo puedo rastrear esta cadena de eval()
al punto del código que es en realidad causa problemas de ing.
D: de hecho, muy, muy D :. – deceze
Yeesh, código ofuscado? Tal vez debería arreglar el "estado de la licencia" y pedirle al editor una solución. – Hamish
Por "el estado de la licencia no es claro", quiero decir, "somos 100% compatibles con la licencia en nuestra instalación, pero creo que no estarían contentos de ver su código en SO". Estamos negociando con ellos para arreglar nuestra instalación, pero dudo que vayan a arreglar su arquitectura de software Chaotic Evil. –