首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP eval+gzinflate+str_rot13+base64 多層加密破解方法

     編輯:PHP 相關知識

惡意代碼常見 N 層加密模式

eval(gzinflate(str_rot13(base64_decode('BASE64內容'))))

破解原理:eval → echo

將 eval() 替換為 echo,捕獲輸出緩衝區內容,逐層剝離。

PHP 5 專用遞迴解密器

<?php
$a = "eval(gzinflate(str_rot13(base64_decode('...'))));";
function decodephp($a) {
  $max = 300;
  for ($i=0; $i<$max; $i++) {
    ob_start();
    eval(str_replace('eval', 'echo', $a));
    $a = ob_get_clean();
    if (strpos($a, 'eval(gzinflate(str_rot13(base64_decode') === false) return $a;
  }
}
echo decodephp($a);
?>

檔案批次解密版(國外經典)

<?php
$fp1 = fopen('coded.txt','r');
$c = fread($fp1, filesize('coded.txt')); fclose($fp1);
while (preg_match('/eval\(gzinflate/',$c)) {
  $c = preg_replace('/<\?|\?>/','',$c);
  eval(preg_replace('/eval/','$c=',$c));
}
file_put_contents('decoded.txt', trim($c));
?>

使用步驟

  1. 將加密代碼存為 coded.txt(僅 eval(...) 內容)。
  2. 執行解密腳本,產生 decoded.txt。
  3. 若失敗,確認 PHP 版本 ≥ 5.0,且未禁用 eval、gzinflate。

防禦建議:伺服器啟用 disable_functions=eval,assert,create_function,採用程式碼簽名與完整性驗證。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved