导航:首页 > 编程语言 > phpgzuncompress

phpgzuncompress

发布时间:2023-05-29 05:32:49

php的网站,怎么扫描出潜藏的一句话木马

查找那些高危函数就行了,比迅如困如eval

php后门木马常用的函数亩念大橡轮致上可分为四种类型:

1. 执行系统命令: system, passthru, shell_exec, exec, popen,
proc_open
2. 代码执行与加密: eval, assert, call_user_func,base64_decode, gzinflate,
gzuncompress, gzdecode, str_rot13
3. 文件包含与生成: require, require_once, include, include_once,
file_get_contents, file_put_contents, fputs, fwrite
4. .htaccess: SetHandler, auto_prepend_file, auto_append_file

⑵ PHP 对数组进行压缩编码,哪种最好

<?php
@set_time_limit(0);
if(php_sapi_name()!=='禅乎cli') {
header('Content-Type:text/plain');
}
$s = file_get_contents('xxx');

$data = array('data'=>str_repeat($s,100));

function benchmark($function, $times=1){
$started_at = microtime(1);
$data = null;
for($i=0; $i<$times; $i++){
$data = $function();
}

printf("%.5fs, length:%.5fm\n\n", microtime(1)-$started_at, (strlen($data) / 1024 /1024));
}

echo "serialize \n";

benchmark(function() use($data){
$t = ((serialize($data)));
$s = unserialize((($t)));
return $t;
});

echo "serialize + base64 \n";

benchmark(function() use($data){
$t = base64_encode((serialize($data)));
$s = unserialize((base64_decode($t)));
return $t;
});

echo "serialize + gzip \n";

benchmark(function() use($data){
$t = (gzcompress(serialize($data)));
$s = unserialize(gzuncompress(($t)));
return $t;
});

echo "serialize+base64_encode +gzip \n";
benchmark(function() use($data){
$t = base64_encode(gzcompress(serialize($data)));
$s = unserialize(gzuncompress(base64_decode($t)));
return $t;
});
exit();

返回值:
serialize
0.01427s, length:6.02410m

serialize + base64
0.17287s, length:8.03214m

serialize + gzip
0.43907s, length:1.44310m

serialize+base64_encode +gzip
0.51364s, length:1.92414m

感觉各有差袭慧优势, 不知道选择哪种方案来做...

要么时间慢, 要么容量大, 没有即时间快,又容量小的方案虚答

⑶ 用PHP查找文本文件中指定字符间的值[

楼主,给你一个能看清取值过滚塌程的程序(变量的汉字部分可以随便改)

<?php
$a = "eval(Urldecode(gzuncompress(base64_decode('哇哈哈哈串') )))";
echo $a;//输出变量原值
echo "<兄羡hr />";
$a1=strpos($a,"'");
echo $a1;//输入第一个'出现的位置
echo "<hr />";
$a2=strrpos($a,"'");
echo $a2;//输出第二个'出现的位置
echo "<hr />";
$a3 = substr($a,$a1+1,$a2-$a1-1);
echo $a3;//输出期望值
?>

运行结果:羡备拍

eval(Urldecode(gzuncompress(base64_decode('哇哈哈哈串') )))
--------------------------------------------------------------------------------
第一个'出现在42的位置
--------------------------------------------------------------------------------
第二个'出现在53的位置
--------------------------------------------------------------------------------
取从第42+1开始后的53-42-1个字符,就是结果
哇哈哈哈串

⑷ php 使用 gzcompress( )压缩以后 服务器的c 语言uncompress()不能解压,该怎么处理呀

不懂C语言,不过gzcompress()是敬袜压缩字符凯宴串的。uncompress是解压缩文件的,不可能解压的亮孙激了的吧

⑸ 到底什么是PHP序列化

在PHP中,序列化用于存储或传递 PHP 的值的过程中,同时不丢失其类型和结构。本文讲述PHP序列化的四种方案,感兴趣的可以了解一下


序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。


1、什么是PHP序列化——serialize和unserialize函数


这两个是序列化和反序列化PHP中数据的常用函数。


$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');


//序列化数组$s = serialize($a);echo $s;//输出结果:a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c";s:7:"Coconut";}


echo ''


;


//反序列化$o = unserialize($s);


print_r($o);


当数组值包含如双引号、单引号或冒号等字符时,它们被反序列化后,可能会出现问题。为了克服这个问题,一个巧妙的技巧是使用base64_encode和base64_decode。


$obj = array();//序列化$s = base64_encode(serialize($obj)); //反序列化$original = unserialize(base64_decode($s));


但是base64编码将增加字符串的长度。为了克服这个问题,可以和gzcompress一起使用。


//定义一个用来序列化对象的函数


function my_serialize( $obj ) { return base64_encode(gzcompress(serialize($obj))); }


//反序列化function my_unserialize($txt) { return unserialize(gzuncompress(base64_decode($txt))); }


2、什么是PHP序列化——json_encode 和 json_decode


使用JSON格式序列化和反序列化是一个不错的选择:


使用json_encode和json_decode格式输出要serialize和unserialize格式快得多。


JSON格式是可读的。


JSON格式比serialize返回数据结果小。


JSON格式是开放的、可移植的。其他语言也可以使用它。


$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');


//序列化数组$s = json_encode($a);echo $s;//输出结果:{"a":"Apple","b":"banana","c":"Coconut"}


echo '


;


//反序列化$o = json_decode($s);


在上面的例子中,json_encode输出长度比上个例子中serialize输出长度显然要短。[page]


3、什么是PHP序列化——var_export 和 eval


var_export 函数把变量作为一个字符串输出;eval把字符串当成PHP代码来执行,反序列化得到最初变量的内容。


$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');


//序列化数组$s = var_export($a , true);echo $s;//输出结果: array ( 'a' => 'Apple', 'b' => 'banana', 'c' => 'Coconut', )


echo '


';


//反序列化eval('$my_var=' . $s . ';');


print_r($my_var);


4、什么是PHP序列化——wddx_serialize_value 和 wddx deserialize


wddx_serialize_value函数可以序列化数组变量,并以XML字符串形式输出。


$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');


//序列化数组$s = wddx_serialize_value($a);echo $s;


//输出结果(查看输出字符串的源码): ApplebananaCoconut


echo '


';


//反序列化$o = wddx_deserialize($s);


print_r($o);//输出结果:Array ( [a] => Apple [b] => banana 1 => Coconut )


可以看出,XML标签字符较多,导致这种格式的序列化还是占了很多空间。


结论


上述所有的函数在序列化数组变量时都能正常执行,但运用到对象就不同了。例如json_encode序列化对象就会失败。反序列化对象时,unserialize和eval将有不同的效果。


本篇《什么是PHP序列化?这个知识点才是你应该了解到的用》到这里就已经结束了,小编一直认为,某一个编程软件受欢迎是有一定原因的,首先吸引人的一定是其功能,环球网校的小编祝您PHP学习之路顺利,如果你还想知道更多php知识,也可以点击本站的其他文章进行学习。

⑹ php gzencode函数需要扩展吗

gzencode

(PHP 4 >= 4.0.4, PHP 5)

gzencode — Create a gzip compressed string

说明
string gzencode ( string $data [, int $level = -1 [, int $encoding_mode = FORCE_GZIP ]] )
This function returns a compressed version of the input data compatible with the output of the gzip program.

For more information on the GZIP file format, see the document: » GZIP file format specification version 4.3 (RFC 1952).

参数
data
The data to encode.

level
The level of compression. Can be given as 0 for no compression up to 9 for maximum compression. If not given, the default compression level will be the default compression level of the zlib library.

encoding_mode
The encoding mode. Can be FORCE_GZIP (the default) or FORCE_DEFLATE.

Prior to PHP 5.4.0, using FORCE_DEFLATE results in a standard zlib deflated string (inclusive zlib headers) after a gzip file header but without the trailing crc32 checksum.

In PHP 5.4.0 and later, FORCE_DEFLATE generates RFC 1950 compliant output, consisting of a zlib header, the deflated data, and an Adler checksum.

返回值
The encoded string, or FALSE if an error occurred.

更新日志
版本 说明
5.4.0 FORCE_DEFLATE now generates RFC 1950 compliant output.
4.2.0 The encoding_mode parameter was added
范例
The resulting data contains the appropriate headers and data structure to make a standard .gz file, e.g.:

Example #1 Creating a gzip file

<?php
$data = implode("", file("bigfile.txt"));
$gzdata = gzencode($data, 9);
$fp = fopen("bigfile.txt.gz", "w");
fwrite($fp, $gzdata);
fclose($fp);
?>
参见
gzdecode() - Decodes a gzip compressed string
gzdeflate() - Deflate a string
gzinflate() - Inflate a deflated string
gzuncompress() - Uncompress a compressed string
gzcompress() - Compress a string
» ZLIB Compressed Data Format Specification (RFC 1950)

gzeof> <gzdeflate
[edit] Last updated: Sat, 17 Nov 2012

⑺ 高分求一段PHP加密代码的解密算法

eval(Urldecode(gzuncompress(base64_decode('加密字符串') ))); 你这句话不就是解码出来了吗??你还想怎么处理?'加密字符串'这里换成变量就行了嘛,多个变量的话用数组存放,再租仿森遍历这个数组不就行了吗??

我晕,你不会将值赋给一个变量来保存呀,例如这样,eval('$str = '.Urldecode(gzuncompress(base64_decode('加密字符串') )));这样就是行大扮了,echo $str;就可以看得到弊亩了,

⑻ 求PHP解码,不知是什么加密的

?php
//解密PHP

$file='Code2.php';

$fp=fopen($file,'r');
$str=fread($fp,filesize($file));
fclose($fp);

$code=strdecode($str);

//forfuncde1
preg_match("/;(.*)]='(.*?)';for(/e",$code,$res);
$c1=$res[2];

//forfuncde1
preg_match("/;(.*)=(.*)('(.*)');(.*);(.*)$/e"胡让,$res[1],$rs);
$c2=$rs[3];

//for睁做帆funcde2
preg_match("/'(@(.*?)(\'(.*?)\'))/e",$code,$res);
$c3=悉雹$res[2];

preg_match("/'.(.*?).'/e",$c3,$r);
preg_match("/('(.*?)','/e",$r[1],$r2);
$c4=$r2[1];
$c4=base64_decode(de1(destr($c4),1));
$c3=str_replace($r[0],$c4,$c3);

$funstr=gzuncompress(base64_decode($c3)).base64_decode($c1);
preg_match("/if(.*),'(.*?)'))/e",$funstr,$res);
$c5=$res[2];

//findmaincode
preg_match("/'(@(.*)(\'(.*?)\'.(/e",$code,$res);
$c=$res[2];
preg_match("/'.(.*?).'/e",$c,$r);
preg_match("/('(.*?)','/e",$r[1],$r2);
$c6=base64_decode(de1(destr($r2[1]),1));
$c=str_replace($r[0],$c6,$c);

//find$de2
preg_match("/".((.*)='(.*?)'));/e",$code,$res);
$de2=destr($res[2]);
$x=($de2.=de2($de2));
$c.=$x;
$decode=gzuncompress(base64_decode($c));

$str=explode('<!--<?phpendif;?>',$decode);
$str=explode('?><?php$GLOBALS',$str[1]);
$decode=$str[0].'?>';

echo$decode;

file_put_contents($file.'.de.php',$decode);

//////////////////////////////

functionde1($de1,$str2=''){
global$c1,$c2;
if(!$str2)return(base64_decode(destr($de1)));
$s9=de1($c2);
for($i=0;$i<strlen($de1);$i++)
$s9.=ord($de1{$i})<245?((ord($de1{$i})>140&&ord($de1{$i})<245)?chr(ord($de1{$i})/2):$de1{$i}):"";
return(base64_decode($s9));
}

functionde2(&$de2){
global$c5;
if(strstr($de2,$c5)){
$de2=str_replace($c5,'',$de2);
$de2=gzuncompress($de2);
}
if(strstr($de2,$c5)){
$de2=str_replace($c5,'',$de2);
de2($de2);
}

}

/////////////////////////////

functionstrdecode($str){
$len=strlen($str);
$newstr='';
for($i=0;$i<$len;$i++){
$n=ord($str[$i]);
$newstr.=decode($n);
}
return$newstr;
}

functiondecode($dec){
if(($dec>126||$dec<32)){
return'['.$dec.']';
}else{
returnchr($dec);
}
}

functiondestr($str){
$k=0;
$num='';
$n=strlen($str);
$code='';
for($i=0;$i<$n;$i++){
if($str[$i]=='['){
$k=1;
}elseif($str[$i]==']'){
$num=intval($num);
$code.=chr($num);
$k=0;
$num=null;
}else{
if($k==1){
$num.=$str[$i];
}else{
$code.=$str[$i];
}
}
}
return$code;
}
?>
不行就改改正则什么的

阅读全文

与phpgzuncompress相关的资料

热点内容
服务器端渲染的数据怎么爬 浏览:163
压缩空气喷射器 浏览:488
python提高效率 浏览:796
华为文件管理怎么样输入解压码 浏览:800
深思加密狗初始化 浏览:566
黄金崩溃pdf 浏览:309
华为特定短信息加密 浏览:375
微机原理与单片机技术李精华答案 浏览:816
pic12c508单片机 浏览:309
androidgps调用 浏览:226
金文编pdf 浏览:445
14乘87减147的简便算法 浏览:473
怎么创建edu文件夹 浏览:721
算法的基础问题 浏览:256
苹果手机怎么选择app支付 浏览:856
访问加密服务器失败怎么回事 浏览:439
程序员每天跑步5公里 浏览:789
党员对程序员有帮助么 浏览:550
慢跑穿压缩衣还是紧身衣 浏览:214
什么服务器引擎最好 浏览:497