我发现this code在黑客Drupal安装,我想知道代码能够做什么。我试过各种工具去混淆它,但我一直没有成功。我被$ r76变量绊倒了。我无法弄清楚它是如何编码的。翻译或建议?混淆恶意PHP
<?php $r76="F[<PAlDf|]}[email protected]~79/O8Kx\rH6r&-c5k\n3X,YzhQ> Cp\\wUu2jGoB;0i_SN\tn%Vg)ZI^sTRyvL{\$:=1*mE+JW(q4.t'`a!\"#edb?";
我发现this code在黑客Drupal安装,我想知道代码能够做什么。我试过各种工具去混淆它,但我一直没有成功。我被$ r76变量绊倒了。我无法弄清楚它是如何编码的。翻译或建议?混淆恶意PHP
<?php $r76="F[<PAlDf|]}[email protected]~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服务器变成一个垃圾邮件服务器 - 或者它可能是一个“电话之家”功能,用于更恶劣的目的。
Re:先前的评论“进取/鲁莽/':-P YOLO,我想。 – 2014-12-05 15:44:41
@MichaelBerkowski Nah,我将'GLOBALS \ ['([^'] +?'''']正则表达并替换为局部变量,然后对所有内容进行评估,直到“@ $ vtton6”(函数调用的第一次尝试或脚本执行。)然后'print_r(get_defined_vars())'和瞧。 – sjagr 2014-12-05 15:46:41
呃,'GLOBALS \ ['([^'] +?''']'(忘记逃脱一个角色 - [_wheeeeee-taptaptap-eeee!_](http://xkcd.com/208/)) – sjagr 2014-12-05 15:53:28
这是一个密码密钥。通过代码的其余部分使用数组访问来访问字符串的位和字母,并且可以从中构建一个完全不同的字符串。 – sjagr 2014-12-05 15:15:45
本身,你发布的东西只不过是一个字符串。因为您可以通过索引访问字符串的字符,所以pastebin中的部分引用它为'$ r76 [24]'。它基本上是一大堆字符,其余的混淆来自于构建其他变量和字符串。如:'$ string ='abcde'; echo $ string [2];' - >打印'c' – 2014-12-05 15:15:59
最重要的是将此Drupal站点脱机并从备份恢复它,而不必担心恶意代码正在做什么。 – 2014-12-05 15:17:58