2014-06-30 67 views
0

我有一個使用zlib函數壓縮的傳入流,但是我無法告訴壓縮數據的結束,所以在獲取數據時遇到了很多麻煩。複雜:解壓縮數據包中的數據時出錯zlib

我也有一個源代碼的片段,它在AS3閃存中被解壓縮,本應該足以讓我知道它,但我很茫然。

兩個文件包括:

http://falazar.com/projects/irnfll/version4/test//stackoverflow/as3_code.as.txt http://falazar.com/projects/irnfll/version4/test//stackoverflow/bin_data_file

片段的二進制數據,以及我所知道的:

00 00 02 34 2c 02 31 78 5e ed dc cd 6e da 40 a5 
21 19 40 f5 f2 c4 b7 e9 18 85 e1 5b 89 66 3d 42 
31 95 90 cd 15 74 99 55 37 51 14 59 c9 a8 8c 54 

0234似乎是一個大小標記 - 564

2c = 44,匹配as3 COMMAND_WORLD_DATA的代碼,那好吧

0231另一大小標記物,總是3比上述

785e較小 - 是用於zlib的報頭標記壓縮最弱壓縮,ZLIB_ENCODING_DEFLATE級別4

後來也有一個789C這是另一種更大的壓縮塊

我需要解壓縮這兩個才能在項目中前進,謝謝你的幫助。

在bigendian轉換的腳本中也有提及,我不知道我是否需要處理它。

我已經寫了幾個腳本來嘗試解決這個問題,包括一個PHP代碼片斷,直到試圖解壓但沒有運氣的循環。 falazar.com/projects/irnfll/version4/test//stackoverflow/php_test.php.txt在PHP或C#

的理想解決方案,但任何事情我可以看到,工程將於翻譯成另一種語言很容易。

(免費使用十六進制編輯器Nero來查看二進制)

回答

1

你的意思是zlib

使用從每個zlib標題開始的PHP's gzuncompress()(例如789c)。

+0

直接從源頭上,很好。 Zlib當然是。 我改變了,並使用該功能,可以測試它可以正常工作與示例文本字符串,但仍然沒有運氣的二進制數據。 我有幾個源文件,現在我正在測試,一對夫婦使用785e級別和一些使用789c級別。 你可以使用這些數據並從中獲取任何可用的信息嗎?我不確定哪個部分搞砸了。該代碼從服務器使用as3代碼工作,但我似乎無法使用數據。謝謝。 – misterblister