傅令江的光影色彩世界
针对PHP使用CHR混淆的修复程序
2021-6-9 傅令江

加密代码如下:

<?php 

if(!isset($_GET[chr(119) . chr(100)])){ 
    header(chr(67) . chr(111) . chr(110) . chr(116) . chr(101) . chr(110) . chr(116) . chr(45) . chr(84) . chr(121) . chr(112) . chr(101) . chr(58) . chr(32) . chr(116) . chr(101) . chr(120) . chr(116) . chr(47) . chr(120) . chr(109) . chr(108)); 

$Afb98ab9159f51fd0 = chr(104) . chr(116) . chr(116) . chr(112) . chr(58) . chr(47) . chr(47) . $_SERVER[chr(83) . chr(69) . chr(82) . chr(86) . chr(69) . chr(82) . chr(95) . chr(78) . chr(65) . chr(77) . chr(69)] . $_SERVER[chr(80) . chr(72) . chr(80) . chr(95) . chr(83) . chr(69) . chr(76) . chr(70)]; 
$Kd9caa6e02c990b0a = chr(60) . chr(108) . chr(105) . chr(115) . chr(116) . chr(62); 
function F($K02a44259755d38e6, $rbbce2345d7772b06 = true){ 
    if(!function_exists(chr(99) . chr(117) . chr(114) . chr(108) . chr(95) . chr(105) . chr(110) . chr(105) . chr(116))) return @file_get_contents($K02a44259755d38e6); 
    $ha2f3e71d9181a67b = $_SERVER[chr(72) . chr(84) . chr(84) . chr(80) . chr(95) . chr(85) . chr(83) . chr(69) . chr(82) . chr(95) . chr(65) . chr(71) . chr(69) . chr(78) . chr(84)]; 
    $Ga0b923820dcc509a = 10; 
    $R6fe97759aa27a0c9 = curl_init(); 
    curl_setopt($R6fe97759aa27a0c9, CURLOPT_URL, $K02a44259755d38e6); 
    curl_setopt($R6fe97759aa27a0c9, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($R6fe97759aa27a0c9, CURLOPT_CONNECTTIMEOUT, $Ga0b923820dcc509a); 
    $g1eae257e44aa9d5b4b5ce2fe28308fd9 = @curl_exec($R6fe97759aa27a0c9); 
    curl_close($R6fe97759aa27a0c9); 
    return $g1eae257e44aa9d5b4b5ce2fe28308fd9; 
}

?>


分析,所有字符使用了chr 通过ascii码值来加密, 解密很简单.看如下程序

<?php 
$str=file_get_contents("bai21.php"); //打开加密文件
$str=preg_replace("/chr\(([\d]*)\)/e","chr(34).chr(\${1}).chr(34);",$str); //替换加密数据
$str = str_replace("\" . \"", "", $str); //清理多余引号
$str=file_put_contents("bai21.php.txt",$str); //保存文件
echo "修复成功" 
?>


使用正则还是很方便的,大家可以自己试试.

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容