首頁 > PHP > PHP腳本 > 正文

php 代碼解密
2011-11-03 20:26:15   來源:   評論:0 點擊:

php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代碼解密直接将eval替換成echo,結果頁面為空白!真郁悶,這招可是百發百中的...

php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代碼解密 直接将eval替換成echo,結果頁面為空白!真郁悶,這招可是百發百中的啊,今天遇到了高人寫的代碼。。。 
慢慢替換,将長變數替換成短的,增強代碼可讀性。 
複制代碼 代碼如下:

 



  1. < ?php 
  2. if (!function_exists("bear01″)) 
  3. function bear01($bear02) 
  4. $bear02 = base64_decode($bear02); 
  5. $bear01 = 0; 
  6. $bear03 = 0; 
  7. $bear04 = 0; 
  8. $bear05 = (ord($bear02[1]) < < 8) + ord($bear02[2]); 
  9. $bear06 = 3; 
  10. $bear07 = 0; 
  11. $bear08 = 16; 
  12. $bear09 = ""; 
  13. $bear10 = strlen($bear02); 
  14. $bear11 = __FILE__; 
  15. $bear11 = file_get_contents($bear11); 
  16. $bear12 = 0; 
  17. preg_match(base64_decode("LyhwcmludHxzcHJpbnR8ZWNobykv"), $bear11, $bear12); ///(print|sprint|echo)/ 
  18. for (;$bear06< $bear10;) 
  19. if (count($bear12)) exit; 
  20. if ($bear08 == 0) 
  21. $bear05 = (ord($bear02[$bear06++]) < < 8); 
  22. $bear05 += ord($bear02[$bear06++]); 
  23. $bear08 = 16; 
  24. if ($bear05 & 0×8000) 
  25. $bear01 = (ord($bear02[$bear06++]) < < 4); 
  26. $bear01 += (ord($bear02[$bear06]) >> 4); 
  27. if ($bear01) 
  28. $bear03 = (ord($bear02[$bear06++]) & 0x0F) + 3; 
  29. for ($bear04 = 0; $bear04 < $bear03; $bear04++) 
  30. $bear09[$bear07+$bear04] = $bear09[$bear07-$bear01+$bear04]; 
  31. $bear07 += $bear03; 
  32. else 
  33. $bear03 = (ord($bear02[$bear06++]) < < 8); 
  34. $bear03 += ord($bear02[$bear06++]) + 16; 
  35. for ($bear04 = 0; $bear04 < $bear03; $bear09[$bear07+$bear04++] = $bear02[$bear06]); 
  36. $bear06++; $bear07 += $bear03; 
  37. else 
  38. $bear09[$bear07++] = $bear02[$bear06++]; 
  39. $bear05 < <= 1; 
  40. $bear08–; 
  41. if ($bear06 == $bear10) 
  42. $bear11 = implode("", $bear09); 
  43. $bear11 = "?".">".$bear11."< "."?"; 
  44. return $bear11; 
  45. }
複制代碼

eval(bear01("一大堆貌似base64_encode後的代碼")); ?> 
其中 
preg_match(base64_decode("LyhwcmludHxzcHJpbnR8ZWNobykv"), $bear11, $bear12); 
顯得格外紮眼 ,decode出來就是 
/(print|sprint|echo)/ 
哈哈,echo就在裡面,将 
/(print|sprint)/ 
base64_encode一下然後替換,eval替換成echo輸出,被隐藏的代碼終于重見天日。 
其實簡單的就是分三步即可:
第一步:搜索preg_match(base64_decode("LyhwcmludHxzcHJpbnR8ZWNobykv")替換為:preg_match(base64_decode("LyhwcmludHxzcHJpbnQpLw==")即可
第二步:将eval(T7FC56270E7A70FA81A5935B72EACBE29字元串中的下面的eval替換為echo或print即可
第三步:然後查看源文件即可看到php代碼(右鍵-查看源文件)。

相關熱詞搜索:php 代碼

上一篇:PHP安全配置詳解
下一篇:mod_fcgid php通過swfupload上傳500

分享到: 收藏
評論排行