我有一些文件,有一些隨機字節和多個gzip文件。我怎樣才能找到一些文件內的gzip流的開始和結束? gzip流之間有許多隨機字節。所以,基本上我需要找到任何gzip文件並從那裏獲取。查找gzip開始和結束?
5
A
回答
8
每個GZIP文件只是一堆數據塊(被稱爲成員),每個文件包含的。
每個成員開始與以下字節:
- 爲0x1F(ID1)
- 0x8B(ID2)
- 壓縮方法。 0x08爲
DEFLATE
d文件。 0-7是保留值。 - 標誌。 前三位被保留,而必須爲零。
- (4字節)上次修改時間。可能設置爲0.
- 額外的標誌,由壓縮方法定義。
- 操作系統,實際上是文件系統。 0 = FAT,3 = UNIX,11 = NTFS
成員的末尾沒有分隔。你必須實際走完整個成員。請注意,連接多個有效的GZIP文件會創建一個有效的GZIP文件。還要注意,超過成員可能仍然會導致成員讀取成員(除非解壓縮庫是故障急切而完全的)。
1
搜索三字節gzip簽名0x1f 0x8b 0x08。當你找到它時,嘗試解碼一個以0x1f開頭的gzip流。如果你成功了,那麼這是一個gzip流,它結束了。如果它是1,則繼續從gzip流之後搜索;如果不是,則在0x08之後繼續搜索。然後你會發現他們所有的人,你會知道他們的位置和跨度。
相關問題
- 1. 查找開始和結束語引用
- 2. 查詢結束開始與
- 3. 檢查開始和結束日期
- 4. 查詢開始和結束字段
- 5. Rails delayed_job開始和結束
- 6. 在開始和結束點(!)
- 7. Svg animate:開始和結束
- 8. 如何查找RxJS.ajax調用的開始和結束?
- 9. XSLT 2.0:查找子串的開始和結束索引
- 10. 查找開始和結束的年/月/日/小時
- 11. 根據開始日期和天數查找結束日期 - excel
- 12. 查找月份的開始日期和結束日期
- 13. 查找月份開始和結束的最近日期
- 14. 查找用戶定義的開始和結束標記
- 15. PHP查找函數的開始和結束
- 16. 如何查找監測地點的開始和結束日期
- 17. 查找數據幀中序列的開始和結束
- 18. 移動到搜索查找的開始和結束
- 19. 蜂巢查找開始和集團的結束或更改點
- 20. 在java中查找開始日期和結束日期
- 21. ,Postgres的查詢 - 找到開始和周結束之差,每週
- 22. 在列中查找開始時間和結束時間
- 23. 尋找結束/開始日期
- 24. XSLT離開開始和結束標記
- 25. Youtube API查詢:開始之前,開始之後,結束之前,結束之後
- 26. 在自定義HTML結構中查找開始和結束標記
- 27. Django查詢 - 哪裏開始=結束
- 28. SQL Server查詢開始結束時間
- 29. 開始日期到結束日期之間的查找時間
- 30. Textpad正則表達式 - 查找選擇的開始/結束
你是否和前一段時間一樣問過如何解壓縮.exe文件? :-) –
@Jan Dvorak不,我不是 – Fedcomp