Decriptare file PHP protetti con SourceCop

Mi è capitato oggi di imbattermi in un file criptato, di questo tipo:

<?php if(!function_exists('findsysfolder')){function findsysfolder($fld){$fld1=dirname($fld);$fld=$fld1.'/scopbin';clearstatcache();if(!is_dir($fld))return findsysfolder($fld1);else return $fld;}}require_once(findsysfolder(__FILE__).'/911006.php');$REXISTHECAT4FBI='BLABLA';g0666f0acdeed38d4cd9084ade1739498(f0666f0acdeed38d4cd9084ade1739498(__FILE__));$REXISTHEDOG4FBI='BLABLABLA';$REXISTHECAT4FBI='94CD76CD371C5A7BC70C186E779C293B9B49BACA5A781A6'; eval(y0666f0acdeed38d4cd9084ade1739498('1034 6 E73D03055E3',$REXISTHEDOG4FBI));?>

Dopo una rapida ricerca ho scoperto che tale codice è prodotto da un simpatico programma (a pagamento), di nome SourceCop.

Questo programma permette di criptare dei file PHP, in modo da poterli distribuire ma senza renderli apparentemente comprensibili per un essere umano.

Apparentemente. Perché in pochi minuti ho trovato un rapido modo per decriptarli, vediamolo insieme.

  • Modificare il file ./scopbin/911006.php, e modificare la stringa:
    return (strstr($s,'echo')==false?

    in:

    return (strstr($s,'NONROMPERE')==false?
  • tornare al file criptato, e alla fine del file modificare:
    eval(y0666f0acdeed38d4cd9084ade1739498('1034 6 E73D03055E3',$REXISTHEDOG4FBI));

    in:

    echo(y0666f0acdeed38d4cd9084ade1739498('1034 6 E73D03055E3',$REXISTHEDOG4FBI));
  • eseguire lo script, e verrà mostrato il sorgente precedentemente criptato.
  • servire freddo. (D)

Per capire cosa ho fatto: il programma lascia salvato il codice criptato in una variabile, che decripta alla fine del file e la esegue (attraverso eval). Quindi è sufficiente stampare a video il contenuto della variabile già decriptata, invece che eseguirla.

Nota: nel file 911006.php c’è una debolissima protezione contro attacchi di questo tipo: si controlla che il file criptato non contenga funzioni come echo(), print()

Ovviamente basta eliminare questo piccolo controllo per poterle comodamente utilizzare.

10 pensieri su “Decriptare file PHP protetti con SourceCop”

  1. ciao ho appena letto la tua guida io dovrei decriptare un file ma non trovo quello che dici tu mi puoi aiutare? gentilissimo grazie 1000.

    B^QYIJH@sxkr9NHenNHenNHe1zfukgFMaXdoyjcUImb19oUAxyb18mRtwmwJ4LT09NHr8XTzEXRJwmwJXLT09NHeEXHr8XhtONT08XHeEXHr8Pkr8XTzEXT08XHtILTzEXHr8XTzEXRtONTzEXTzEXHeEpRtfydmOlFmlvfbfqDykwBAsKa09aaryiWMkeC0OLOMcuc0lpUMpHdr1sAunOFaYzamcCGyp6HerZHzW1YjF4KUSvNUFSk0ytW0OyOLfwUApRTr1KT1nOAlYAaacbBylDCBkjcoaMc2ipDMsSdB5vFuyZF3O1fmf4GbPXHTwzYeA2YzI5hZ8mhULpK2cjdo9zcUILTzEXHr8XTzEXhTslfMyShtONTzEXTzEXTzEpKX==tMOlcMlVcBWPk19hOaiyWZFpwo9ZwoOpcUImAMazfukpC3OlctniC2YlF3HmhTShFMaxfBlZca9vdMYlwtihAryAUy9eT01WT05yTlWVOyHVk2YvdmOZd2xScbwVFoiXkZL7tMlMhtOjd250FM9SdoaZwe0IUlklFbalF3W6KMflfyfvFMWPk2YvdmOZd2xScbwmhULIGXPLFoy0DtE9wrpWWaOwb0YNTanNTLaKat5rAZ4mC29VfukvdoxlFmHmRLOTRJOjd250FM9SdoaZRJFVFoiXkzShDBCIhocpdoagcbipF3OzhtOXCbOPhULIGXpZcby1Dbklb29VC2AIkunifoI7tm1lduYlwuShkoYvdmOZd2xScbwINUEmkzShgWp9tJOjdoyzF25idBAkNUEmOMxpFunpdMftd29qW29VfukvdoxlFJFVfBYMDbkzftILC29VfukvdoxlFJL7tJOjd250FM9SdoaZwe0IdMa3wtOjdoyzF25idBAPwtL7tJOjd250FM9SdoaZRT5lGoajfbOlhrpUcby1cbY0KjpmcbOedBWPk3OiF2SmhUL7tJOjd250FM9SdoaZRT5ZcBOpFMajftIpKX==}\h{KqpPHGAc@PUTbL@z

  2. io penso di avere un file criptato in quel modo.. ogni file finisce sempre con eval, il problema è che non trovo il primo file, è possibile che il file si trovi sul suo server?

  3. Ciao. Sei un grande..
    una domanda però: il mio codice decriptato però sembra avere una parte mancante.
    Se infatti tento di ricreare il file php originario con il codice non decriptato, il funzionamento non è uguale(la pagina risulta bianca). Ho sbagliato qualche cosa?
    Grazie mille in anticipo.

  4. Ciao,volevo chiederti se riesci a decifrare questa scrittura compressa:
    Ti elenco due scritture che non riesco a decifrare,sono cryptati
    Se riesci,gradirei sapere come,grazie
    1.
    <?php ${"\x47L\x4f\x42AL\x53"}["\x76\x71b\x6b\x73\x6c\x74\x73q\x6e\x78"]="\x69tem\x4e\x61\x6d\x65";${"\x47\x4cOB\x41\x4c\x53"}
    2.
    ��������
    ������À����������¨������������������
    ���4�������������À����������������������
    ���.����������������������������������
    ���R���������������������� ���get_stacking ��������
    ��������������������������������

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *