解码GLx4fx42Ax4cx53,比如在wordpress的wp-autopost插件中就有这样的代码
形如GLx4fx42Ax4cx53的文件解码,一般不是直接16进制转字符就可以,对其中的引号和斜杠要做一些判断和处理,例子如下:
< ?php $t='0123456789abcdefABCDEF'; $fn='hexcodedfile.php'; $r=$p=$qt=$s=''; $slash=false; $i=$j=0; if ($f=fopen($fn,"rb")){ $s=fread($f,filesize($fn)); fclose($f); for ($i=0;$i<strlen($s);$i++){ $slash=false; $p=sprintf(" %06d,%06d",$i,$j); if ($s[$i]==''&&$s[$i + 1]=='x' &&strpos($t,$s[$i+2])!==false&&strpos($t,$s[$i+3])!==false){ $qt=strtolower(substr($s,$i,4)); $slash=(($qt=='\x22'||$qt=='\x5c')&&$s[$i-1]!='') //引号\x22 斜杠\x5c,前面不是斜杠,需补充斜杠 ||(($qt=='\x22'||$qt=='\x5c')&&substr($s,$i-2,2)=='');//前面是2+个斜杠,需要补充斜杠 if ($slash) { $p=sprintf("<font color=red>%s",$p); $j++; } echo 'H:'.$qt.'=> '.chr(hexdec($s[$i+2].$s[$i+3])).$p.'<br />'; $qt=($slash)?'':''; $r.=$qt.chr(hexdec($s[$i+2].$s[$i+3])); $i=$i+3; }else{ echo 'C:=====> '.$s[$i].$p.'<br />'; $r.=$s[$i]; } $j++; } $fn.='-1'; $f=fopen($fn,"wb"); fwrite($f,$r); fclose($f); echo 'done...'; } ?>
评论已关闭