用于检测特定文件是否由ioncube编码的模式

时间:2011-11-27 11:15:05

标签: php ioncube

我想通过脚本识别ioncube编码的PHP文件。我在每个ioncube编码的PHP文件中看到一些常见的字符串:

<?php //003ab
if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');@dl($__ln);if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}@dl($__ln);}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the site administrator.');exit(199);
?>

我想知道这个字符串是否适用于所有离子立方体编码文件,无论是否为离子立方体版本,或者在进行编码操作时都会运行平台离子立方体。

1 个答案:

答案 0 :(得分:0)

关闭php标记?>之后,Ioncube文件始终以:0a 03 c1 2b字节开头

更新:

然后你需要加载离子立方体扩展,之后:

“5.4.1 mixed ioncube_read_file(string path [,bool&amp; was_encrypted [,string passphrase]]]) ... 如果成功读取文件,则将内容作为二进制安全字符串返回。 “

IONCUBE手册: http://www.ioncube.com/USER-GUIDE.pdf