Red de conocimiento informático - Aprendizaje de programación - descifrado de archivos php

descifrado de archivos php

Todo el cifrado en PHP es un tigre de papel. Reemplace eval con exit y luego ejecútelo en la consola (o en DOS). Puede ver el código descifrado de la declaración eval. Estos códigos se pueden usar para reemplazar la declaración eval. Por ejemplo, en su programa, después de reemplazar eval con exit por primera vez, el código resultante durante la ejecución es el siguiente:

$OO0OO0000=$OOO000000{17}.$ooo000000{12}.$OOO000000 { 18}.$OOO000000{5}.$OOO000000{19};if(!0)$OO000O0O00=$OOOO0000($OOO0O0O00,'rb');$OO0OO000O=$OOOO000000{17}.$OOO000000{20}. $OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OO0OO00O0=$OOOO000000{14}.$OOO000000{0}.$OOO000000{20}.$OOO000000{0}.$OOO000000{20} ; $OO0OO000O($OO000O0O00,1253);$OO0000O0=($OO0000O0($OO0OO00O0($OOOO000O($OO000O0O00,380),'3MUQw4rlCWsbe+ DthpLui5VnAfOSB9N6/dja2XRgFKxGq0yEYZ HJcmzvIP1oTk87=',ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));eval($OO00O00O0);

Reemplace la declaración eval en el archivo fuente con esta declaración. El efecto después del reemplazo es el siguiente:

Copyright(C) 2009 www.i7a.cn, Todos los derechos reservados.

$OOOO0O0O00=__FILE__;$OOO000000=urldecode('%74%68%36%73%62%65%68%71% 6c%61%34%') 63%6f%5f%73%61%64%66%70%6e%72');$OOO00O0000=9504;$OOO0000O0=$OOO000000{4}.$OOO000000{9}. $OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$ooo000000{10}.$ooo000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}. $ooo000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$O0O0000O0='OOO0000O0';$OO0OO0000=$OOO000000{17}.$ooo000000{12}.$OOO000000 {18 }.$OOO000000{5}.$OOO000000{19};if(!0)$OO000O0O00=$OOOO0000($OOO0O0O00,'rb');$OO0OO000O=$OOO000000{17}.$OOO000000{20}.$OOO000000 $ OO0OO000O($OO000O0O00,1253);$OO0000O0=($OOO0000O0($OO0OO00O0($OOOO000O($OO000O0O00,380),'3MUQw4rlCWsbe+ DthpLui5VnAfOSB9N6/dja2XRgFKxGq0yEYZ H JcmzvIP1oTk87=',ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));salir($OO00O00O0);regresar ;?

Lo anterior es el principio de descifrado de PHP, pero este archivo ya no se puede descifrar automáticamente aquí porque el archivo original se destruye. Podemos mirar variables como $OO0OO00O0 en echo y encontrar el. declaración actual De hecho, el contenido al final del archivo se lee, se reemplaza y luego se vuelve a ejecutar. Ahora es necesario ajustar los 380 bytes internos a la posición correcta después de 380 bytes del archivo original.