導航:首頁 > 編程語言 > 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