Ho a che fare con un pezzo di codice di terze parti profondamente malvagio nel bel mezzo di un'installazione di Magento, e sto avendo un piccolo problema a seguire i suoi thread. Ecco un messaggio di errore che sto vedendo:In che modo PHP eval() conta i numeri di riga?
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
ho identificato l'inizio della catena eval() in Reader.php
, ed è on line 36. Quindi sono quei numeri tra parentesi dopo, anche solo riferimenti di linea entro grandi blocchi di testo? Sono incline a crederlo, ma non riesco a capirlo da solo. Se questo è il caso, quello eval()'d code(1302)
sembra particolarmente terribile. D:
Vorrei dare più contesto, ma lo stato della licenza del codice non è molto chiaro, quindi tutto quello che posso dare è che questa catena triple-eval() sta attualmente rompendo le cose, e che il secondo strato di è costruito in questo modo:
$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);
Quando si SWIZZLE quel blocco al di fuori del flusso del programma di Magento, $s2
contiene cose belle come -
if($license->getModule()->getDecode()) {
$source = base64_decode($source);
}
...
list($source) = explode("PERFORMER_CLASS_CREATED",$source,2);
$source .= " */";
ob_start();
eval($source);
ob_end_clean();
quindi: come posso tracciare questa catena di eval()
al punto del codice che è in realtà causa problemi?
D: anzi, molto molto D :. – deceze
Yeesh, codice offuscato? Forse dovresti correggere lo "stato della licenza" e chiedere una soluzione all'editore. – Hamish
Per "stato della licenza non è chiaro", intendo, "siamo al 100% conformi alla licenza nella nostra installazione, ma penso che sarebbe abbastanza scontato vedere il proprio codice su SO". Stiamo negoziando con loro per correggere la nostra installazione, ma dubito che risolveranno la loro architettura del software Chaotic Evil. –