今天在百度知道上面有个朋友问php代码解密的问题,看了代码不是常见几种比较感兴趣,特意搜索了下,发现下面的方法,解决了,具体的看最后的说明。 复制代码 代码如下: > 4); if ($T7FC56270E7A70FA81A5935B72EACBE29) { $T9D5ED678FE57BCCA610140957AFAB571 = (ord($TF186217753C37B9B9F958D906208506E[$T3A3EA00CFC35332CEDF6E5E9A32E94DA++]) & 0x0F) + 3; for ($T0D61F8370CAD1D412F80B84D143E1257 = 0; $T0D61F8370CAD1D412F80B84D143E1257 ".$TFF44570ACA8241914870AFBC310CDB85." 直接将eval替换成echo,结果页面为空白!真郁闷,这招可是百发百中的啊,今天遇到了高人写的代码。。。 慢慢替换,将长变量替换成短的,增强代码可读性。 复制代码 代码如下: if (!function_exists("bear01″)) { function bear01($bear02) { $bear02 = base64_decode($bear02); $bear01 = 0; $bear03 = 0; $bear04 = 0; $bear05 = (ord($bear02[1]) $bear06 = 3; $bear07 = 0; $bear08 = 16; $bear09 = ""; $bear10 = strlen($bear02); $bear11 = __FILE__; $bear11 = file_get_contents($bear11); $bear12 = 0; preg_match(base64_decode("LyhwcmludHxzcHJpbnR8ZWNobykv"), $bear11, $bear12); ///(print|sprint|echo)/ for (;$bear06{ if (count($bear12)) exit; if ($bear08 == 0) { $bear05 = (ord($bear02[$bear06++]) $bear05 += ord($bear02[$bear06++]); $bear08 = 16; } if ($bear05 & 0×8000) { $bear01 = (ord($bear02[$bear06++]) $bear01 += (ord($bear02[$bear06]) >> 4); if ($bear01) { $bear03 = (ord($bear02[$bear06++]) & 0x0F) + 3; for ($bear04 = 0; $bear04 $bear09[$bear07+$bear04] = $bear09[$bear07-$bear01+$bear04]; $bear07 += $bear03; } else { $bear03 = (ord($bear02[$bear06++]) $bear03 += ord($bear02[$bear06++]) + 16; for ($bear04 = 0; $bear04 $bear06++; $bear07 += $bear03; } } else $bear09[$bear07++] = $bear02[$bear06++]; $bear05 $bear08–; if ($bear06 == $bear10) { $bear11 = implode("", $bear09); $bear11 = "?".">".$bear11."return $bear11; } } } } eval(bear01("一大堆貌似base64_encode后的代码")); ?> 其中 preg_match(base64_decode("LyhwcmludHxzcHJpbnR8ZWNobykv"), $bear11, $bear12); 显得格外扎眼 ,decode出来就是 /(print|sprint|echo)/ 哈哈,echo就在里面,将 /(print|sprint)/ base64_encode一下然后替换,eval替换成echo输出,被隐藏的代码终于重见天日。 其实简单的就是分三步即可:第一步:搜索preg_match(base64_decode("LyhwcmludHxzcHJpbnR8ZWNobykv")替换为:preg_match(base64_decode("LyhwcmludHxzcHJpbnQpLw==")即可第二步:将eval(T7FC56270E7A70FA81A5935B72EACBE29字符串中的下面的eval替换为echo或print即可第三步:然后查看源文件即可看到php代码(右键-查看源文件)。
08-22 23:17