您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2024/11/28 4:05:22发布21次查看
早上有朋友让我帮忙看一个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个解密函数,函数名保存在数组里。类似
解出来就能看到修改后就不能运行的关键代码:
$a=file_get_contents('origin.php'); @substr($a,-32)==md5(substr(substr($a,0,-32).'另外一个32位md5',6))||die();
注释掉后继续执行后面的代码:
又是一个eval,在解密……
由于解密出来的文件有乱码,不能直接用copy&paste,必须以二进制写入一个文件,再经过一些替换、解密,再写入一个文件……总共经过5轮解密,最后得到源文件。
最后整理了一下写了个正则搞定这个文件,直接解除这个文件。
相关代码:http://download.csdn.net/detail/sbdx/8616319
以上就介绍了遇到个加密的php文件,把decode过程写下来,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product