我發現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