php混淆加密文件($OOO0O0O00=__FILE__)的解密方法
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2016-11-23 11:44:43
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
php文件混淆加密后的文件如下
$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=7088;$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';
解密方法
$filename = "加载的php文件路径"; //要解密的文件 $lines = file($filename); //0,1,2行 //第一次base64解密 $content = ""; if (preg_match("/O0O0000O0\('.*'\)/", $lines[1], $y)) { $content = str_replace("O0O0000O0('", "", $y[0]); $content = str_replace("')", "", $content); $content = base64_decode($content); } //第一次base64解密后的内容中查找密钥 $decode_key = ""; if (preg_match("/\),'.*',/", $content, $k)) { $decode_key = str_replace("),'", "", $k[0]); $decode_key = str_replace("',", "", $decode_key); } //查找要截取字符串长度 $str_length = ""; if (preg_match("/,\d*\),/", $content, $k)) { $str_length = str_replace("),", "", $k[0]); $str_length = str_replace(",", "", $str_length); } //截取文件加密后的密文 $Secret = substr($lines[2], $str_length); //echo $Secret; //直接还原密文输出 echo "<?php\n" . base64_decode(strtr($Secret, $decode_key, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')) . "?>";