模糊恶意PHP

模糊恶意PHP,php,security,Php,Security,我在一个被黑客攻击的Drupal安装上发现了这个代码,我想知道这个代码能做什么。我尝试了各种工具来消除混淆,但都没有成功。我被$r76变量绊倒了。我搞不懂它是怎么编码的。翻译还是建议 <?php $r76="F[<PAlDf|]}M@~79/O8Kx\rH6r&-c5k\n3X,YzhQ> Cp\\wUu2jGoB;0i_SN\tn%Vg)ZI^sTRyvL{\$:=1*mE+JW(q4.t'`a!\"#edb?"; $r76是一个密码密钥。在代码的其余部分使用数组访

我在一个被黑客攻击的Drupal安装上发现了这个代码,我想知道这个代码能做什么。我尝试了各种工具来消除混淆,但都没有成功。我被$r76变量绊倒了。我搞不懂它是怎么编码的。翻译还是建议

<?php $r76="F[<PAlDf|]}M@~79/O8Kx\rH6r&-c5k\n3X,YzhQ> Cp\\wUu2jGoB;0i_SN\tn%Vg)ZI^sTRyvL{\$:=1*mE+JW(q4.t'`a!\"#edb?";

$r76
是一个密码密钥。在代码的其余部分使用数组访问访问字符串的位和字母,您可以从中构造完全不同的字符串(如函数名、变量等)

下面是脚本顶部定义的全局变量的求值。使用它们来找出脚本的其余部分。。。如果你想在这件事上比我浪费更多的时间:

[vtton6] => error_reporting
[jlxru64] => ini_set
[vajox38] => define
[qobdl72] => hvcug13
[yhrfr40] => xyhxn92
[quzii24] => md5
[tlyiy12] => count
[kyioa8] => time
[glyac65] => constant
[nhnww15] => npufi61
[igajs32] => potcc11
[cpukq94] => omauf87
[bdonk12] => hwgbo88
[aurku4] => ioxgo29
[yqqkt30] => function_exists
[tnmsd36] => mail
[chqql44] => armtx32
[cvtxr40] => ecyws30
[eavur97] => usleep
[ptlaz26] => urvfu78
[xcnkh30] => xllez0
[wnlxd28] => trim
[laepm94] => preg_replace
[nxseo15] => gethostbyname
[cyzbs96] => preg_match
[yoejz48] => rzekg39
[lzjpr73] => wdtjf68
[osnjl91] => rxrmp70
[zhjzv93] => prcux47
[brkww19] => strlen
[yhcum29] => oyysg80
[ibere91] => foftg27
[vszxc90] => array_keys
[qtgcq90] => socket_select
[bwpvf88] => ucfirst
[bdvxl14] => str_replace
[xizmx47] => ini_get
[stkuy98] => vkaqq98
[duiid33] => date
[grxdw62] => getmxrr
[nvuxa92] => ybewy88
[ysmvf63] => min
[vbhwy58] => Array
    (
    )

[wdbfr89] => fewfx40
[vxogc32] => preg_split
[inenw32] => xwses24
[xyxdn38] => chr
[rtdlc97] => ord
[cnrfe78] => urldecode
[wzekj92] => stripslashes
[yrqxp89] => array_flip
[xavtv19] => preg_match_all
[zjheh80] => base64_encode
[gisxn89] => socket_create
[oqikt29] => socket_last_error
[tvxvt28] => socket_strerror
[fmlld76] => socket_set_option
[zwafy86] => socket_set_nonblock
[uocvp26] => socket_connect
[xvxof76] => fsockopen
[vzqix48] => stream_set_blocking
[sltum36] => stream_set_timeout
[clkxn20] => stream_socket_client
[unkvq75] => socket_close
[yoxhh65] => fclose
[dskbo69] => socket_read
[jhtbn88] => feof
[zflfl64] => fread
[uwnpx27] => socket_write
[stdvp96] => fwrite
[ocmvf65] => rand
[bkenc7] => explode
[llpxl21] => pack
[efljc33] => unpack
[zndda55] => cgzhg7
[lzlla40] => array_merge
[axqrn63] => long2ip

如果我不得不猜测的话,在模糊变量中提到
mail
仅仅意味着这是一个恶意的邮件脚本,旨在将您的PHP服务器变成垃圾邮件服务器——或者可能是出于更邪恶的目的的“呼叫总部”功能。

对于示例中的一个示例,
$r76[94]。$r76[24]。$r76[24]。$r76[49]。$r76[24].$r76[54]。$r76[24]。$r76[94]。$r76[41]。$r76[49]。$r76[24]。$r76[87]。$r76[53]。$r76[58]。$r76[61]
=
错误报告
。虽然同意,但只需删除代码-它对您没有任何价值。它的确切含义是。。。迪克。@NiettheDarkAbsol你的意思是
$r76[6]。$r76[53]。$r76[27]。$r76[29]
?@sjagr解码你真有进取心。@MichaelBerkowski在办公室过得很慢。我的生活现在有了目标:以前的评论
s/进取/鲁莽/
:-P约罗,我猜。@MichaelBerkowski不,我注册了
GLOBALS\['([^']+?)]
,并将其替换为本地变量,然后对所有内容进行评估,直到
@$vtton6
(第一次尝试函数调用或脚本执行)为止,然后
打印(get_defined_vars())
瞧,
GLOBALS\['([^']+?)\]
(忘记转义字符-@sjagr你能粘贴你用来正则化这些变量的代码吗?@graylon。任何带有正则化查找/替换的文本编辑器都可以。在替换部分,只需使用
$1