If you receive some files with encrypted code and would like to check or modify the code, you have to decrypt it. If the file is started with ”<?php eval(gzinflate(base64_decode” or similar string, it is possible to receive the open source version without any problems.
In such situations I use the following 2 scripts (it depends which one to choose, however you always can try both), that works in 99% of cases:
<?
$file = 'some_file.php';
$content = file_get_contents($file);
$counter = 0;
while(true) {
$content_new = preg_match("/<\?php(.*)eval\((.*)\)/uims", $content, $out);
if ($out[2]) {
eval($out[1]);
eval('$content = '.$out[2].';');
}
else {
// echo 'try counter:'.($counter-1)."\n";
break;
}
if ($counter == 1000) break;
$counter++;
}
echo $content;
?>
<?
$file = 'some_file.php';
$content = file_get_contents($file);
$counter = 0;
$content = strtr($content, array('__FILE__' => "'".$file."'", '__LINE__' => "'".'2'."'"));
preg_match("/<\?php(.*)eval\((.*)\)/uims", $content, $out);
if ($out[2]) {
eval($out[1]);
eval('$content = '.$out[2].';');
$content = $out[1]."\n".$content;
preg_match('/(.*)eval\(\$(.*)\)/uims', $content, $out);
if ($out[1]) {
eval($out[1]);
$content = $$out[2];
$content = strtr($content, array('__FILE__' => $file, '__LINE__' => "'".'2'."'"));
preg_match('/die\(\'This script is locked to another domain\.\'\);(.*)eval\(\$(.*)\)/uims', $content, $out);
if ($out[1]) {
eval($out[1]);
$content = $$out[2];
die("<?php\n".$content."\n?>");
}
}
}
else die('Problem');
echo $content;
?>
You should type the correct file in the second line of the script:
$file = 'some_file.php';
You can use the scripts above to unlock such cases. I usually do that in order to work with these scripts on local machine or to make the preview on my server for clients. However please follow all legal rules.