Come criptare i nostri scripts in PHP – Source Guardian
Questo articolo è un approfondimento di “Offuscare o proteggere il nostro codice PHP – Introduzione“, analizzeremo le funzionalità, i pregi ed i difetti di Zend Guard al fine di criptare uno script PHP.
Source Guardian non è l’unico programma che permette di cifrare uno script in PHP, per la lista completa vi rimando a Offuscare o proteggere il nostro codice PHP – Introduzione.
Source Guardian
Source Guardian (250$, windows, linux, mac), tramite un’interfaccia che lascia un po’ a desiderare vi permette di criptare il vostro codice. Il primo approcio con la versione Demo è stato ottimo, l’interfaccia scarna del programma è compensata da una semplicità di utilizzo veramente alta. Con pochi clicks guidati potremo visualizzare il nostro sorgente criptato.

I nodi giungono però al pettine dopo poco tempo: al momento dell’esecuzione dello script comparirà la richiesta di installazione di Source Guardian loader, dopo una ricerca un po’ macchinosa sono giunto ad una pagina (nei files di installazione di source guardian) che spiega come effettuarne l’installazione:

Prima
[source:php]
<?php
function isOnline($address=”localhost”, $port=”80″, $timeout=”1″)
{
@$fp=fsockopen($address,$port,$err_no,$errstr,$timeout);
if($fp)
{
return 1;
fclose($fp);
}
else
{
echo “Errore numero $err_no: $errstr\n”;
return 0;
}
}
?>[/source]
Dopo
[source:php]<?php @SourceGuardian; 1051555483; 2602881255; //v7.0 evaluation
if(!function_exists(‘sg_load’)){$__v=phpversion();$__u=strtolower(substr(php_uname(),0,3));$__f=$__f0=’ixed.’.substr($__v,0,strpos($__v,’.',3)).’ev.’.$__u;$__ff=$__ff0=’ixed.’.$__v.’ev.’.$__u;$__ed=ini_get(‘extension_dir’);if(!$__e=realpath($__ed)) die(‘extension_dir does not exists ‘.$__ed);if(file_exists($__e.’/’.$__ff)) dl($__ff);else if(file_exists($__e.’/’.$__f)) dl($__f);else {$__d=getcwd();if(@$__d[1]==’:'){$__d=str_replace(‘\\’,'/’,substr($__d,2));$__e=str_replace(‘\\’,'/’,substr($__e,2));}$__e.=($__h=str_repeat(‘/..’,substr_count($__e,’/')));$__f=’/ixed/’.$__f;$__ff=’/ixed/’.$__ff;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if (file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff);else if (file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists(‘sg_load’)){die(‘PHP script <B>’.__FILE__.’</B> is protected by <A href=”http://www.sourceguardian.com/”>SourceGuardian</A> and requires the SourceGuardian loader <B>’.$__f0.’</B>. The SourceGuardian loader has not been installed, or is not installed correctly. Please find the required loader in the ixed subdirectory within your SourceGuardian installation directory.’);exit();}}return sg_load(‘AAQAAAAMAAAABHAAAACABAAAAAAAAAD/MPqWt4A0hGDqoOPTsBY0RZWEFiSW1kqExXhlpjyQDLwnMRC8v35pX6HyAI+7v3Ow8PdnvlntxY0OSjK47/S16KIMnwGoGnn+RS3NZU/IK+RUOGKterxnfOUmdRO7scw5higAnljyrSheIJ9xpznOtXu84okXfng7KaDUJVHQTnexmk67Hv9lmlTeB3qs7S2poluC+X9Orbf3jJUB81Fxq+mlXpAQ6vnsFPbcagkOm1jByfXqIif7NlZDTYjACjsYlN3SYQbDICuZrHrMp5wNgl+SFXGQ4FYaazeuCL3KTKGSOTPN/U4NVJuEl21MhJ+bfETcmKxSaEI4TjGgrp2PjKNelGWkrKCj7zrBo+UrOBXQaKjFvizt1t4pxNNEiKykkyTDN1X0v0+ivxOqBkIjX4hnR0NJpQ0rsdFN5EnnRJsgbxQIsmGHz+fDvPtuOZNenYtFl4/NKnlOJd9GAcnzUW2Vwnw6WsQ7jIERVeXy5m1720krTsE+DutbBGFe8kHgaXUXtUU0S9b8TwIk7rBkDkiOaITzGKdT+Rk7Xw4p8DEjOFDWZ0IA1IJflsNZuN1WZilX8m05xJzni+bc8fmWdHsblHnKtFKdUylX01gONZ11uSHWPMJoGEcp7uGBTGenLrt5AYUHUisEMjXU1muZi0ipz3DybGtaWVwDuQ59tTVGPViyVzXrPoV5dQTPTyY8zXW7xqEtkQBB5wLAcJo5IYJrjEjWS7M8WkssAf+Ib/eyI2JClqqd/ij2eRtd6XekeuQH5VjoenL5QNnP2QklrkncXzlNK4cwhvRy9sj2Zp11zBAcBWL0Ws7V80Sx/LAZf0frzxSwP0co5kWwf/OSDmNITmCWP8z2gXSu1ApmraB4664UdYxPUHTft8fUjaB5′);
?>[/source]
Conclusioni: Source Guardian è un po’ difficile da installare, ha un’interfaccia che di certo non è delle migliori ma pare che decifrare il codice sia più complicato. E’ anche vero che costa molto meno di Zend Guard.




