`
cnqhoo
  • 浏览: 21096 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

微盾PHP脚本加密专家解密算法

阅读更多

今天工作中某合作商拿过来代码让检查安全,一看代码加密了,比较汗,类似下面代码:

  1. <?php // This file is protected by copyright law & provided under license. Copyright(C) 2005-2009 www.vidun.com, All rights reserved. 
  2. $OOO0O0O00=__FILE__;$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72');$OO00O0000=28;$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$O0O0000O0='OOO0000O0';eval(($$O0O0000O0('JE9PME9PMDAwMD0kT09PMDAwMDAwezE3fS4kT09PMDAwMDAwezEyfS4kT09PMDAwMDAwezE4fS4kT09PMDAwMDAwezV9LiRPT08wMDAwMDB7MTl9O2lmKCEwKSRPMDAwTzBPMDA9JE9PME9PMDAwMCgkT09PME8wTzAwLCdyYicpOyRPTzBPTzAwME89JE9PTzAwMDAwMHsxN30uJE9PTzAwMDAwMHsyMH0uJE9PTzAwMDAwMHs1fS4kT09PMDAwMDAwezl9LiRPT08wMDAwMDB7MTZ9OyRPTzBPTzAwTzA9JE9PTzAwMDAwMHsxNH0uJE9PTzAwMDAwMHswfS4kT09PMDAwMDAwezIwfS4kT09PMDAwMDAwezB9LiRPT08wMDAwMDB7MjB9OyRPTzBPTzAwME8oJE8wMDBPME8wMCwxMjU5KTskT08wME8wME8wPSgkT09PMDAwME8wKCRPTzBPTzAwTzAoJE9PME9PMDAwTygkTzAwME8wTzAwLDM4MCksJ0VudGVyeW91d2toUkhZS05XT1VUQWFCYkNjRGRGZkdnSWlKakxsTW1QcFFxU3NWdlh4WnowMTIzNDU2Nzg5Ky89JywnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLycpKSk7ZXZhbCgkT08wME8wME8wKTs=')));return;?> 
  3. kr9NHenNHenNHe1zfukgFMaXdoyjcUImb19oUAxyb18mRtwmwJ4LT09NHr8XTzEXRJwmwJXPkr9NTzEXHenNHtILT08XT08XHr8XhtONTznNTzEXHr8Pkr8XHenNHr8XHtXLT08XHr8XHeEXhUXmOB50cbk5d3a3D2iUUylRTlfNaaOnCAkJW2YrcrcMO2fkDApQToxYdanXAbyTF1c2BuiDGjExHjH0YTC3KeLqRz0mRtfnWLYrOAcuUrlhU0xYTL9WAakTayaBa1icBMyJC2OlcMfPDBpqdo1Vd3nxFmY0fbc3Gul6HerZHzW1YjF4KUSvkZLphUL7cMYSd3YlhtONHeEXTznNHeEpK2a2CBXPkr9NHenNHenNHtL7eWplC2ivwunPFolVcM8PhTSYtI== 

很明显,是使用了某种PHP代码混淆工具混淆了下,Google一把,原来是使用的微盾PHP脚本加密专家加密的,网上搜了下,没找到免费的解密工具,于是乎,自己就研究了下,写了个解密算法,share下,给遇到同样问题的朋友一个方便。

       另外需要说明的是,我测试,本地解密出来的代码可以阅读的,由于代码混淆过,可能还原出来的有些地方和原代码有出入,有需要可自行修改之。

更新:

2009-09-16

添加了自动获取要截取的字符串长度,更通用了。

  1. <?php 
  2. /*********************************** 
  3. *威盾PHP加密专家解密算法 By:Neeao 
  4. *http://Neeao.com 
  5. *2009-09-10 
  6. ***********************************/ 
  7.  
  8. $filename="play-js.php";//要解密的文件 
  9. $lines = file($filename);//0,1,2行 
  10.  
  11. //第一次base64解密 
  12. $content=""
  13. if(preg_match("/O0O0000O0\('.*'\)/",$lines[1],$y)) 
  14.     $content=str_replace("O0O0000O0('","",$y[0]); 
  15.     $content=str_replace("')","",$content); 
  16.     $content=base64_decode($content); 
  17. //第一次base64解密后的内容中查找密钥 
  18. $decode_key=""
  19. if(preg_match("/\),'.*',/",$content,$k)) 
  20.     $decode_key=str_replace("),'","",$k[0]); 
  21.     $decode_key=str_replace("',","",$decode_key); 
  22. //查找要截取字符串长度 
  23. $str_length=""
  24. if(preg_match("/,\d*\),/",$content,$k)) 
  25.     $str_length=str_replace("),","",$k[0]); 
  26.     $str_length=str_replace(",","",$str_length); 
  27. //截取文件加密后的密文 
  28. $Secret=substr($lines[2],$str_length); 
  29. //echo $Secret; 
  30.  
  31. //直接还原密文输出 
  32. echo "<?php\n".base64_decode(strtr($Secret,$decode_key,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'))."?>"
  33.  
  34. ?> 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics