Red de conocimiento informático - Computadora portátil - Código fuente CTmpr

Código fuente CTmpr

Primero, formatéelo para verlo más fácilmente:

lt? php // Copyright de Internet (C) Todos los derechos reservados.

$ OOO0O0O00 = _ _ ARCHIVO _ _

$ ooo 000000 = urldecode(' 74 68 36 73 62 65 68 71 6c 61 34 63 6f 5f 73 61 64 66 70 6e 72 ');

$ oo00o 0000 = 196900;

$ ooo 00000 o 0 = $ ooo 0000000 { 4 }. OOO000000 USD{9}. 00000000 USD{3}. OOO000000${5};

000000$. =$OOO000000{2}. $ooo0000000{10}. $ooo0000000{13}. $ooo 0000000 {16};

$000000. =$OOO0000O0{3}. $ooo0000000{11}. $ooo0000000{12}. $OOO0000O0{7}. OOO000000${5};

$ o0o 0000 o 0 = ' ooo 00000 o 0 ';

echo($ $o0o 0000 o 0(' je 9 pm9 pmdawmd 0 kt 09 pmdawmdaweze 3 fs 4kt 09 pmdawmdaweze 4 fs 4kt 09 pmdawmdawezv 9 lirpt 08 wmdawmdb 7 MTL 9 o 2 lmckcewksrpmdawtzbp m a9 PME 9 pmdawmcgt 09 PME 8 wtzawlcdyyipcoyrptzbptzawme 89 je 9 zawmdawm sx

Regresar;

gt

Notamos que la clave es la variable después de echo. Vamos a generarla primero:

php //Copyright de Internet (C) Todos los derechos reservados

$ OOO0O0O00 =. _ _ ARCHIVO _ _

$ ooo 000000 = urldecode(' 74 68 36 73 62 65 68 71 6c 61 34 63 6f 5f 73 61 64 66 70 6e 72 ');

$oo00o 0000 = 196900;

$ooo 00000o 0 = $ooo 0000000 {4}. $ooo0000000{13};

$000000 OOO0000O0 { 3 }.

$ooo000000{5};

$o0o0000o0 = 'ooo00000o0';

exit($$o0o0000o0); //$$o0o0000o0 aquí está la variable en la siguiente línea.

echo($ $ o0o 0000 o 0(' je 9 pm9 pmdawmd 0 kt 09 pmdawmdaweze 3 fs 4kt 09 pmdawmdaweze 4 fs 4kt 09 pmdawmdawezv 9 lirpt 08 wmdawmdb 7 MTL 9 o 2 lmckcewksr pmdawtzbp m a9 P YO 9 pmdawmcgt 09 PME 8 wtzawlcdyyipcoyrptzbptzawme 89 je 9 ptzawmdawm sx

Return;

gt

Obtener el resultado: base64_decode

Por lo tanto, juzgamos lo siguiente El código está decodificando un carácter codificado en base64. Veamos qué es después de la decodificación. Elimine la salida anterior y cambie el eco actual directamente para salir:

php // Copyright de Internet (C) reservados Todos los derechos. reservado

$ OOO0O0O00 = _ _ ARCHIVO _ _

$ ooo 000000 = urldecode(' 74 68 36 73 62 65 68 71 6c 61 34 63 6f 5f 73 61 64 66 70 6e 72');

$oo00o 0000 = 196900;

$ooo 00000o 0 = $ooo 0000000 {4}. /p>

$OOO000000{2}. $OOO0000000{13};

$000000{3}.$ooo0000000{12}.$ooo00000{5};

= ' ooo 00000 o 0 ';

exit($ $ o0o 0000 o 0(' je 9 PME 9 pmdawmd 0 kt 09 pmdawmdaweze 3 fs 4kt 09 pmdawmdaweze 4 fs 4kt 09 pmdawmdawezv 9 lirpt 08 wmdawmdb 7MTL 9 o 2 lmckcewksrpmdawtzbp m a9 PME 9 pmdawmcgt 09 PME 8 wtzawlcdyyipcoyrptzbptzawme 89 je 9 ptzawmdawm mhsx

Return;

gt

Obtener salida:

$oo0oo 0000 = $ooo 000000 { 17 }. $ooo0000000{12}. $ooo0000000{18}.

OO000000 USD{5}. $ ooo 0000000 { 19 }; si (! 0) $ o 000 o0o 00 = $ oo 0oo 0000($ ooo 000 o00, ' Rb '); $OOO000000{20}. OO000000 USD{5}. OOO000000 USD{9}. $oo 0000000 {16}; $oo 0 oo 00 o 0 = $oo 0000000 {14}. $OOO000000{0}. $OOO000000{20}. $OOO000000{0}. $ ooo 000000 { 20 }; $oo0OO000O($oo 00000O00, 1182); $oo 00 o 00 o =($oo 00000 o 0($oo 0000 o 0($oo 00000 o 0000($o 000 o 00 o 00692) ,' 1 a 40 clvumps 6 hkzlxvrctm/ojaig 3f 9 zgyexjkbtopr nfn 2 ieqdqybw 7 hdus 8 w 5 = ',' abcdefghijklmnopqrstuwxyzabcdefgihjklmnoqrstuwweval($ oo 00 o 00 o 0); ver esto es otro código de cifrado es del eco original, por lo que reemplazaremos el código de la parte del eco original con este código:

php //Internet Copyright (C) Todos los derechos reservados >

$. OOO0O0O00 = _ _ ARCHIVO _ _

$ ooo 000000 = urldecode(' 74 68 36 73 62 65 68 71 6c 61 34 63 6f 5f 73 61 64 66 70 6e 72 '); p>$ooo 0000000 = $196900;

$ooo000000{2}. $ooo0000000{13};

$000000. $OOO00000{ 5 };

$OOO 0000O 0 ';

$ ooo 0000000 { 19 };

if (! 0) $ o 000 o0o 00 = $ oo 0oo 0000 ($ ooo 000 o00, ' Rb '); o = $ ooo 0000000 { 17 }. $OOO000000{20}. OO000000 USD{5}. OOO000000 USD{9}. $oo 0000000 { 16 };

$oo 0 oo 00 o 0 = $oo 0000000 { 14 }. $OOO000000{0}. $OOO000000{20}. $OOO000000{0}. $ ooo 000000 { 20 };

$OOOO000O($O000O0O00,1182);

$oo 00 o 00o =($oo 00000o 0($oo 0000o 0( $oo 00000 o 0000($o 000 o 00 o 00692),' 1 a 40 clvumps 6 hkzlxvrctm/ojaig 3f 9 zgyexjkbtopr nfn 2 ieqdqybw 7 hdus 8 w 5 = ',' abcdefghijklmnopqrstuwxyzabcdefgih

evaluación($ oo 00 o 00 o 0);

Return;

gt

Bien, el resultado es muy cercano. ¡Veamos este código nuevamente! La función eval puede ejecutar cadenas ordinarias como código PHP, por lo que podemos concluir que en la función eval, es el código PHP de cadena el que realmente se ejecuta. Las variables en la función eval son las variables en la línea superior. lo anterior es, y use exit para generar las variables en el lado derecho de las variables anteriores y obtenga:

lt? php // Copyright de Internet (C) Todos los derechos reservados. >$ OOO0O0O00 = _ _ ARCHIVO _ _

$ ooo 000000 = urldecode(' 74 68 36 73 62 65 68 71 6c 61 34 63 6f 5f 73 61 64 66 70 6e 72 ');

$oo00o 0000 = 196900;

$ooo 00000o 0 = $ooo 0000000 {4}.$ ooo0000000{13};

$000000{3} $ ooo 0000000 { 12 }. >

$ oo0oo 0000 = $ ooo 000000 { 17 }. $ooo0000000{12}.

$ooo0000000{18}. OO000000 USD{5}. $ ooo 0000000 { 19 };

if (! 0) $ o 000 o0o 00 = $ oo 0oo 0000 ($ ooo 000 o00, ' Rb '); o = $ ooo 0000000 { 17 }. $OOO000000{20}. OO000000 USD{5}. OOO000000 USD{9}. $oo 0000000 { 16 };

$oo 0 oo 00 o 0 = $oo 0000000 { 14 }. $OOO000000{0}. $OOO000000{20}. $OOO000000{0}. $ ooo 000000 { 20 };

$OOOO000O($O000O0O00,1182);

$oo 00 o00o 0 =(base64 _ decode(strr(fread($o 000 o0o 00 , 692), ' 1 a 40 clvumps 6 hkzlxvrctm/ojai 3f 9 zgyexjkbtopr nfn 2 ieqdqybw 7 hdus 8 w 5 = ', ' abcdefghijklmnopqrstuvwxyzabcdefgihklmnopqrstuvwxyz 01233

eval( $oo 00 00 o 0);

Retorno;

gt

Hay otra variable que no reemplazamos directamente, porque cuando usamos salir, genera un identificador de recurso, por lo que continuamos buscando , Encontré su declaración de definición (use la búsqueda Ctrl F del editor, la encontré en la oración después de if (! 0), ahora salga) la variable en la declaración después de:

If (! 0) $ o 000 o0o 00 = fopen($ ooo 000 o00, ' Rb ');

La definición de la variable de la derecha también la podemos encontrar en la primera línea:

$ OOO0O0O00 = _ _ ARCHIVO _ _

Bien, ahora que básicamente hemos encontrado todo el código relevante, vamos a simplificarlo:

lt?php //Copyright de Internet (C) Todos los derechos reservados

$ OOO0O0O00 = _ _ ARCHIVO _ _

if(!0)$ o 000 o0o 00 = fopen($ ooo 000 o00,' Rb ');

$oo 00 o00o 0 =(base64 _ decode(strr(fread($o 000 o0o 00, 692),' 1 a 40 clvumps 6 hkzlxvrctm/ojai 3f 9 zgyexjkbtopr nfn 2 ieqdqybw 7 hdus 8 w 5 = ',' abcdefghijklm nopqrstuvwxyzabcdefgihklmnopqrstuvwxyz 01233

eval($ oo 00 o 00 o 0);

Return;

gt

El siguiente paso es continúe reemplazando con exit eval, luego reemplace y al final no habrá evaluación.

Probé tu página, pero parece no tener resultados.

Ya he decodificado el complemento Discuz de otra persona antes, ¡y así es como lo obtuve! Resumen simple: al cifrar, las variables se nombran utilizando la similitud entre el número 0, la letra O mayúscula y la letra O minúscula, y luego el cifrado se logra mediante la codificación base64 repetida y el descifrado de caracteres es utilizar un programa para leer el; salida de su propio programa, luego intercepte la cadena, decodifique la cadena base64 y finalmente use la función de evaluación para ejecutar la cadena. La tarea principal de la decodificación manual es reemplazar constantemente eval con exit y luego sobrescribir el código fuente hasta que no quede eval. El resultado final impreso es el código fuente claro del programa.

Hay tutoriales online muy detallados. Pruébelo en Baidu. Lo vi en línea antes.