我根本不懂PHP;这更像是一个好奇的问题。
下面的PHP函数在文本文件中是几千个字符的文本,例如:
xnEFstUhSNWGSx5zTq4X/AUw/rtism+klrBETWg0xE1uwb49rnRxrgrgY5EEp3Y0uvTcvLqhUFOP
4n7LDLQpQ9UACTyuUjGBKmUScQCYLCP08u06t0K3nWTNiM7Q6bQMk/iZBE+UK1ywbVC1Lzr9OOEK
这个php函数是否将随机文本编码到php中?可以从中找出加密方案吗?
编辑:客户说他拥有对其他人开发的代码的完全所有权和权利。怎么解码?它需要密码吗?
<?php //003ac
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);
?>
答案 0 :(得分:11)
它几乎是由离子立方体编码的PHP,如果你愿意,也可以进行混淆。 Ioncube是一个非自由混淆的字节码执行引擎,ioncube loader
是处理混淆代码的库。
值得一提的是'deobfuscator'是一个免费的库,它已经加载到我见过的大多数PHP安装中。
答案 1 :(得分:5)
它由 ionCube 加密。 ionCube扩展将处理代码的解密。可能有可能自己解码,但检查您与开发人员的许可协议,因为它不确定这样做是合法的。
该部分代码仅检查您的服务器上是否安装了ionCube扩展。文件的解密是不(我认为,阅读混淆的代码并不容易: - ))。
答案 2 :(得分:4)
以下是格式化的代码:
<?php
//003ac
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);
?>
如果找到扩展名,看起来这会检查ionCube Loader并通过各种方法解码加密的php。否则,它让管理员知道他/她需要安装扩展程序。
编辑看起来您在我回答时格式化了文字。
答案 3 :(得分:3)
根据这个网站,它是一个编码器。我想这是代码混淆。
答案 4 :(得分:2)
是的,它是加密/解密PHP源代码。您可以在底部看到它引用ionCube个产品。