• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

遇到个加密的PHP文件,把decode过程写下来

php 搞代码 3年前 (2022-01-23) 22次浏览 已收录 0个评论

早上有朋友让我帮忙看一个PHP文件,里面都是乱码,改动任何一个字符就会中止运行。

文件只有一行,以下是部分内容:

中间省略一堆字符编码,最后的内容是

2Kx9yHSQyO/D+5+fnPf+v/BSrlfeg=')));return;?>5e813...32位MD5....3f6

一开始使用ZendStudio+Xdebug跟踪了一遍,发现对于这种压缩在一行的代码,调试根本无力啊!断点都无从下起。

搞了半天还是没效果,干脆手工解决吧。

简单的看了一下,只是把变量名用一些比较特殊的字符替代,用编辑器打开,把几个重复出现的关键字替换一下,就能看出大概了。

其中还用到了一个自定义函数,这段函数已经在文件开头提供了,就是“蜖棁ㄔ┄蕷”。

function 蜖棁ㄔ┄蕷($A,$B=""){	$A=base64_decode($A);	if(empty($A)) return "";	if($B==""){return ~$A;}	else	{		$D=strlen($A);$B=str_pad($B,$D,$B);$str=$A^$B;return $str;	}}

经过几次简单的替换可以知道每个字段内保存的是什么内容了

首先从eval函数入手,后面跟着的应该是2个解密函数,函数名保存在数组里。类似

<?php$arr['B']='base64_dec本文来源gaodaimacom搞#^代%!码&网*
搞代gaodaima码

ode';$arr['G']='gzuncompress';//调用的时候可以这样用eval($arr['G']($arr['B']('一大堆乱码')))

解出来就能看到修改后就不能运行的关键代码:

	$A=file_get_contents('origin.php');	@substr($A,-32)==md5(substr(substr($A,0,-32).'另外一个32位MD5',6))||die();

注释掉后继续执行后面的代码:

又是一个eval,在解密……

由于解密出来的文件有乱码,不能直接用Copy&Paste,必须以二进制写入一个文件,再经过一些替换、解密,再写入一个文件……总共经过5轮解密,最后得到源文件。

最后整理了一下写了个正则搞定这个文件,直接解除这个文件。

<?php	$B='base64_decode';	$G='gzuncompress';	function A($A,$B="")	{		$A=base64_decode($A);		if(empty($A)) return "";		if($B==""){return ~$A;}		else		{			$D=strlen($A);$B=str_pad($B,$D,$B);$str=$A^$B;return $str;		}	}	$s=file_get_contents('origin.php');	//第1次匹配	preg_match('/\]\(\'(.+?)\'\)/',$s,$r1);	$s=$G($B($r1[1]));		//第2次匹配	preg_match('/\]\(\'(.+?)\'\)/',$s,$r2);	$s=A($B($r2[1]));		//第3次匹配	preg_match('/\]\(\'(.+?)\'\)/',$s,$r3);	$s=($B($r3[1]));		//第4次匹配	preg_match('/\]\(\'(e.+?)\'\)/',$s,$r4);	$s=$G($B($r4[1]));		//第5次匹配	preg_match('/\]\(\'(e.+?)\'\)/',$s,$r5);	$s=(A($B($r5[1])));	file_put_contents('code.php',$s);	echo 'Done!';

相关代码:http://download.gaodaima.com/detail/sbdx/8616319

以上就介绍了遇到个加密的PHP文件,把decode过程写下来,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:遇到个加密的PHP文件,把decode过程写下来

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址