php混淆加密文件($OOO0O0O00=__FILE__)的解密方法

来源:赵克立 分类: PHP 标签:PHP函数加密解密发布时间:2016-11-18 15:27:27浏览:844
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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+/')) .
	"?>";



微信号:kelicom QQ交流群:215861553
点击更换验证码
留言