Есть ли паблик криптор php файлов? Чтонить вроде этого: PHP: <? error_reporting(0); set_time_limit(0); if (!isset($_GET['crypt']) || empty($HTTP_POST_FILES['file'])) { ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1251" /> <title>Онлайн крипт PHP скриптов</title> </head> <body bgcolor="#181818" text="#FFFFFF"> <center> <h1>Крипт PHP скриптов</h1> <br /> <form action="?crypt=1" method="post" enctype="multipart/form-data"> Загрузите ваш скрипт:<br /> <small>(Допустимые расширения: php, php3, php4, php5)</small><br /> <input type="file" name="file" /> <input type="submit" value="Крипт" /><br /> <table width="500" border="0"><tr><td><div align="justify"> Размер закриптованного скрипта немного увеличится. Ключ, с помощью которого криптуются скрипты каждый раз генерируется другой. После криптования вам будет предложено сохранить закриптованный скрипт. </div></td></tr></table> </form> </center> </body> </html> <?php } else { function get_file_ext($file) { if (strstr($file,".")) { $d=strlen($file); $ext=""; while($file[$d]!=".") { $ext=$file[$d].$ext; $d--; } return strtolower($ext); } else { return $name; } } $file_ext=get_file_ext($HTTP_POST_FILES['file']['name']); if ($file_ext != "php" && $file_ext != "php3" && $file_ext != "php4" && $file_ext != "php5") { die ("<h2>Загруженный файл не является РНР скриптом!</h2>"); } $input = $_FILES['file']['tmp_name']; $f=join("", file($input)); $key = rand(1,100); $find = 0; $start_pos = strpos($f, "<?php"); if($start_pos != false) { $start_pos = strpos($f, "<?"); if($start_pos == false) { $find=1; $f= substr($f, $start_pos+2, strlen($f)); } } else { $find=1; $f= substr($f, $start_pos+5, strlen($f)); } if($find==0) exit("Крипт не удался."); $start_pos = strrpos($f, "?>"); if(is_int($start_pos))$f=substr($f, 0, $start_pos); $new = '';$len=strlen($f); for($i=0;$i<$len;$i++) { $new .= chr(ord($f[$i]) ^ $key); } $new = str_replace("<?", "[t1]", $new); $new = str_replace("'", "[t3]", $new); $code = "<? \$key_that_script_is_crypted=$key; \$resource_crypted_code ='$new'; \$string_output=str_replace(\"[t1]\", \"<?\", \$resource_crypted_code); \$string_output=str_replace(\"[t3]\", \"'\", \$string_output); \$lenth_of_crypted_code=strlen(\$string_output); \$eval_php_code=''; for(\$huivamvsem=0;\$huivamvsem<\$lenth_of_crypted_code;\$huivamvsem++) \$eval_php_code .= chr(ord(\$string_output[\$huivamvsem]) ^ \$key_that_script_is_crypted); eval(\$eval_php_code); ?>"; header("Content-type: application/octet-stream"); header("Content-disposition: attachment; filename=\"crypted.".$file_ext."\";"); header("Content-length: ".strlen($code)); echo $code; } ?>
Ты в начале толком объясни, что тебе действительно надо. На какой стадии он не должен палиться до обработки web-сервером или уже после? Если до - тогда думаю любой предложенный подойдет, если после то тут уже врядли чтото поможет.
Подниму тему. Кто чем криптует PHP? И имеет ли это вообще какой-то смысл при современных антивирусных технологиях?
Подправил малость криптор, тот что ТС выложил: PHP: <? error_reporting(1); set_time_limit(0); ?><html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8" /><title>Онлайн крипт PHP скриптов</title></head><body bgcolor="#181818" text="#FFFFFF"><center><h1>Крипт PHP скриптов</h1><br /><form action="?crypt=1" method="post" enctype="multipart/form-data">Загрузите ваш скрипт:<br /><small>(Допустимые расширения: php, php3, php4, php5)</small><br /><input type="file" name="file" /> <input type="submit" value="Крипт" /><br /><table width="500" border="0"><tr><td><div align="justify">Размер закриптованного скрипта немного увеличится. Ключ, с помощью которого криптуются скрипты каждый раз генерируется другой. После криптования вам будет предложено сохранить закриптованный скрипт.</div></td></tr></table></form></center></body></html><?phpif (!isset($_GET['crypt']) || isset($_FILES['file'])) {function get_file_ext($file) {if (strstr($file,".")) {$d=strlen($file);$ext="";while($file[$d]!=".") {$ext=$file[$d].$ext; $d--; }return strtolower($ext);} else {return $name;}}$file_ext=get_file_ext($_FILES['file']['name']);if ($file_ext != "php" && $file_ext != "php3" && $file_ext != "php4" && $file_ext != "php5") {die ("<center><h2>Загруженный файл не является РНР скриптом!</h2></center>");}$input = $_FILES['file']['tmp_name'];$f=join("", file($input));$key = rand(1,100);$find = 0;$start_pos = stripos($f, "<?php"); if($start_pos == false) { $start_pos = stripos($f, "<?"); if($start_pos == false) { $find=1; $f= substr($f, $start_pos+2, strlen($f)); } }else { $find=1; $f=substr($f, $start_pos+5, strlen($f)); }if($find==0) exit("Крипт не удался.");$start_pos = strripos($f, "?>");if(is_int($start_pos))$f=substr($f, 0, $start_pos);$new = '';$len=strlen($f);for($i=0;$i<$len;$i++){$new .= chr(ord($f[$i]) ^ $key);}$new = str_replace("<?", "[t1]", $new);$new = str_replace("'", "[t3]", $new);$code = "<?php\$key_that_script_is_crypted=$key;\$resource_crypted_code ='$new';\$string_output=str_replace(\"[t1]\", \"<?\", \$resource_crypted_code);\$string_output=str_replace(\"[t3]\", \"'\", \$string_output);\$lenth_of_crypted_code=strlen(\$string_output);\$eval_php_code='';for(\$huivamvsem=0;\$huivamvsem<\$lenth_of_crypted_code;\$huivamvsem++)\$eval_php_code .= chr(ord(\$string_output[\$huivamvsem]) ^ \$key_that_script_is_crypted);eval(\$eval_php_code);?>";//header("Content-type: application/octet-stream");//header("Content-disposition: attachment; filename=\"crypted.".$file_ext."\";");//header("Content-length: ".strlen($code));$fh = fopen("CryptCode.php", "a");fwrite($fh, "$code");fclose($fh);echo "<hr><center><textarea rows=20 cols=80>".htmlentities($code)."</textarea></center><hr>";}?> Есть маленькие замечания, криптор и файл который вы криптуите, обязательно должен быть в одной кодировке, к примеру UTF-8 и криптуемый файл, обязательно должен быть обременен в пхп теги, после криптовки проверил айболитом в режиме параноика, файл не спалился и без подозрений... Оригинальный, уже закриптованый файл, ложится в корне в файл CryptCode.php