视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
php混淆有多少种
2020-11-27 14:19:29 责编:小采
文档


混淆方法:

两个文件采用了4种混淆方法对代码进行混淆

1、局部变量追加乱码 (推荐学习:PHP视频教程)

对于局部变量,在经过转为无意义单字符后,在变量名后追加多个'\xEF\xBD\xBD'字符,并在其中混杂一些其他不可见字符(7E以后的),给人以乱码的感觉,单实际上并无影响。局部变量可以任意命名,只要能区分出来就行。

2、利用unicode加转义符显示字符串,采用十进制和十六进制两种方式进行显示,避免直观看到。

php可以使用如"\150\157\155\145\120\141\1\150"(十进制)或"\x73\x79\x73\x74\x65\x6d\x4c\x6f\x67"(十六进制)在文件中作为变量名。这种方式直接

3、利用php字符串可以用作函数名,将常用函数名隐藏

使用了

$GLOBALS全局变量

define宏函数

base_decode函数

以及自定义不可逆函数_kstr2()函数

4、使用字符串连接符号来连接被分割并转换的字符串

其中_kstr2()代码还原后的结果如下

 function _kstr2($str) {
 $len = strlen($str);
 $result = '';
 $baseChar = ord($str[0]) - 30;
 for ($str = 1; $str < $len; $str+= 2) {
 if ($str + 1 < $len) {
 $result.= chr(ord($str[$str + 1]) + $baseChar );
 $result.= chr(ord($str[$str]) + $baseChar );
 } else {
 $result.= chr(ord($str[$str]) + $baseChar );
 }
 }
 return $result;
 }
}

下载本文
显示全文
专题