混淆方法:
#兩個檔案採用了4種混淆方法對程式碼進行混淆
1、局部變數追加亂碼 (推薦學習:PHP影片教學)
對於局部變量,在經過轉為無意義單字符後,在變量名後追加多個'\xEF\xBD\xBD'字符,並在其中混雜一些其他不可見字符(7E以後的),給人以亂碼的感覺,單實際上並無影響。局部變數可以任意命名,只要能分辨出來就好。
2、利用unicode加轉義符號顯示字串,採用十進位和十六進位兩種方式進行顯示,避免直觀看到。
php可以使用如"\150\157\155\145\120\141\164\150"(十進位)或"\x73\x79\x73\x74\x65\x6d\x4c \x6f\x67"(十六進位)在檔案中作為變數名稱。這種方式直接
3、利用php字串可以當函數名,將常用函數名隱藏
使用了
$GLOBALS全域變數
define巨集函數
base64_decode函數
以及自訂不可逆函數_kstr2()函數
#4 、使用字串連接符號來連接被分割並轉換的字串
其中_kstr2()程式碼還原後的結果如下
function _kstr2($str) { $len = strlen($str); $result = ''; $baseChar = ord($str[0]) - 30; for ($str = 1; $str < $len; $str+= 2) { if ($str + 1 < $len) { $result.= chr(ord($str[$str + 1]) + $baseChar ); $result.= chr(ord($str[$str]) + $baseChar ); } else { $result.= chr(ord($str[$str]) + $baseChar ); } } return $result; } }
以上是php混淆有多少種的詳細內容。更多資訊請關注PHP中文網其他相關文章!