PHP文件如何解密

PHP文件如何解密,第1张

所谓的PHP文件加密,一般有两种方式,一是ZEND编译,二是BASE64等编码,理论上都不是加密,下面分别说说如何还原。

对于ZEND编译过的代码,用记事本打开是完全是乱码,除了前面的很小的头部,后面不是可见ASCII字符,有点像打开一个EXE文件的效果,是无法阅读的。这类处理的文件一般认为是无法还原的,网上有DEZEND工具,你可以下载来试试看,能还原早期ZEND版本编译后的代码。

对于使用BASE64等编码后的PHP文件,可以用记事本打开查看,所有字符都是可见ASCII字符,一般使用两种方法加大阅读难度:一是使用$ll111、$ooo000这样的变量,字母L的小写与1混在一起、字母O的小写与数字0混在一起,不容易分辨变量名称。二是使用BASE64编码对原始代码进行转换,最后使用eval进行处理。往往两种方式结合在一起。

第二种方式处理后的代码是很容易还原的,方法就是把eval换为exit,在CLI(命令提示符)下执行就会显示出eval那个语句对应的等效代码,替换原始语句即可。有时候还原一次后还是eval语句,那需要按照同样的方法反复处理。

本篇文章是对PHP中的UNICODE 编码与解码进行了详细的分析介绍 需要的朋友参考下  

方法一:

复制代码 代码如下: <?php function unicode_encode($name) { $name = iconv( UTF UCS $name)$len = strlen($name)$str = for ($i = $i <$len $i = $i + ) { $c = $name[$i]$c = $name[$i + ]if (ord($c) >) { //两个字节的文字 $str = u base_convert(ord($c) ) str_pad(base_convert(ord($c ) ) STR_PAD_LEFT)} else { $str = $c } } return $str} //将UNICODE编码后的内容进行解码 function unicode_decode($name) { //转换编码 将Unicode编码转换成可以浏览的utf 编码 $pattern = /([w]+)|(u([w]{ }))/i preg_match_all($pattern $name $matches)if (!empty($matches)) { $name = for ($j = $j <count($matches[ ])$j++) { $str = $matches[ ][$j]if (strpos($str u ) === ) { $code = base_convert(substr($str ) )$code = base_convert(substr($str ) )$c = chr($code) chr($code )$c = iconv( UCS UTF $c)$name = $c} else { $name = $str} } } return $name}

方法二:

复制代码 代码如下: lishixinzhi/Article/program/PHP/201311/21149


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12081858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存