类似这样的文件 不知道是用什么加密的?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
把代码格式化一下,大概可以变成这样子:
global $ar;
$ar = array('眴暓簨亸悓' => __FILE__);
if(!defined('AAFEEBDEDCC')) {
define("AAFEEBDEDCC", 1378718929);
function f($a, $b="") {
global $ar;
$a = base64_decode($a);
if(empty($a))
return "";
if($b == "") {
return ~$a;
} else {
$c = $ar['2']($a);
$b = $ar['3']($b, $c, $b);
return $a^$b;
}
}
}
$ar['1'] = f('mpKPi4Y=', ''); // empty
$ar['2'] = f('jIuNk5qR', ''); // strlen
$ar['3'] = f('jIuNo肐+emw==', '');
echo $ar['3'];
$ar['睅斀垞Г潑'] = f('nZ6Mmsn↙oJuanJbmg==', '');
$ar['迁憛皶尰'] = f('HjgiKD繟/KiECKyQq', 'nJGOoMOQ');
$ar['幎紮厞璃Г'] = f('FxQEWQ==', 'rbe5tYGWl8aA');
$ar['膰摜忱'] = f('0M/H儂8men箂7Iz5nHsea弞p2bysma梲8fHm8bJx?7Nxpyc?Jo=', '');
$ar['潊粋暦泉'] = f('DTEcCBQNBB獻BLwBO', 'jKifwbibsJs=');
@$ar['迁憛皶尰']($ar['膰摜忱'], $ar['幎紮厞璃Г'].'('.$ar['潊粋暦泉'].'('.$ar['睅斀垞Г潑'].'......', ,'毝徚0806aa170f8e8e1bd56e088d968129cc嫏憛');
return;
我已经把变量名替换了,它加密的方法大概就是 base64 之后按位取反。
解密的方法很简单,就是跟着代码走,不断地加入 echo 语句,把中间的结果打印出来。
比如我在上面的代码中已经注释了,mpKPi4Y= -> empty 和 jIuNk5qR -> strlen 。我估计中间有一个地方会出现 eval 之类的东西,然后后面那个超大的字符串的就是用来 eval 的。
无奈的是上面的 ar['3'] 在我的 php 5.5.6 下运行不了。jIuNo肐+emw== 这个字符串本身也不是合法的 base64 串。如果这里不是编码问题的话,那估计是旧版本的 php 可以支持这个。楼主如果可以运行,可以沿着这个思路继续,就可以解密了。