php的eval、gzinflate、base64_decode解密程序使用

  • 内容
  • 评论
  • 相关

很多人在使用php的时候会遇到加密过的代码,例如使用base64编码,这里我们给出这样一段加密代码:

$code = 7L0HYBxJliUmL23Ke39K9UrX4HShCIBgEyTYkEAQ7MGIzeaS7B1pRyMpqyqBymVWZV1mFkDM7Z28995777333nvvvfe6O51OJ/ff/z9cZmQBbPbOStrJniGAqsgfP358Hz8i8rqu6t+/zl';
$unLock = gzinflate(base64_decode($code));
//打印解密出的源代码
var_dump ($unLock);

这样就可以正确解密出被加密过的代码。使用过wordpress的人可能会遇到一些类似的问题。
这里经常会用到eval()函数,这个函数平时使用的比较少,这个是源自linux的bash shell,这个函数在php中的作用是将字符串当做php来执行或者运算。
当然,字符串要完全符合php的格式,包括变量定义符号$不能被转义,结尾要有分号等。例如

$value = 'this is value';
$string = "\$param = \"$value\";";
eval($string);
echo $param;

这一段的作用是为一个变量赋值。这个赋值语句在eval中被执行了。再看一个例子:

$str = 'this is hellogxp';
$code = "print('$str');";
eval($code);

这一段是执行了一个代言语句,这个语句被以字符串的形式写进一个变量,然后这个变量传给eval,eval把这个字符串当做php代码执行。
到此你对eval也有了一个简单的理解,其实这个函数对于网络安全的一些人员来说并不陌生,因为这个函数经常被黑客拿来使用,例如用它来制造php的后门程序,尤其是在POST,HEAD等提交数据的时候。javascript中也有一个此函数,后续讲解。

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注