.zip格式和zip偽加密


ZIP文件的組成:

壓縮源文件數據區+壓縮源文件目錄區+壓縮源文件目錄結束標志

 

壓縮源文件數據區

50 4B 03 04:這是頭文件標記(0x04034b50)

 

14 00:解壓文件所需 pkware 版本

 

00 00:全局方式位標記(有無加密)

 

08 00:壓縮方式

 

5A 7E:最后修改文件時間

 

F7 46:最后修改文件日期

 

16 B5 80 14:CRC-32校驗(1480B516)
 
19 00 00 00:壓縮后尺寸(25)

 

17 00 00 00:未壓縮尺寸(23)

 

07 00:文件名長度

 

00 00:擴展記錄長度

 

6B65792E7478740BCECC750E71ABCE48CDC9C95728CECC2DC849AD284DAD0500

 

壓縮源文件目錄區:

 

50 4B 01 02:目錄中文件文件頭標記(0x02014b50)

 

3F 00:壓縮使用的 pkware 版本

 

14 00:解壓文件所需 pkware 版本

 

00 00:全局方式位標記(有無加密,這個更改這里進行偽加密,改為09 00打開就會提示有密碼了)

 

08 00:壓縮方式

 

5A 7E:最后修改文件時間

 

F7 46:最后修改文件日期

 

16 B5 80 14:CRC-32校驗(1480B516)

 

19 00 00 00:壓縮后尺寸(25)

 

17 00 00 00:未壓縮尺寸(23)

 

07 00:文件名長度

 

24 00:擴展字段長度

 

00 00:文件注釋長度

 

00 00:磁盤開始號

 

00 00:內部文件屬性

 

20 00 00 00:外部文件屬性

 

00 00 00 00:局部頭部偏移量

 

6B65792E7478740A00200000000000010018006558F04A1CC5D001BDEBDD3B1CC5D001BDEBDD3B1CC5D001

 

壓縮源文件目錄結束標志:

 

50 4B 05 06:目錄結束標記

 

00 00:當前磁盤編號

 

00 00:目錄區開始磁盤編號

 

01 00:本磁盤上紀錄總數

 

01 00:目錄區中紀錄總數

 

59 00 00 00:目錄區尺寸大小

 

3E 00 00 00:目錄區對第一張磁盤的偏移量

 

00 00:ZIP 文件注釋長度

 

1、自己簡單做一個zip壓縮包,正常的壓縮,壓縮包內有三個TXT文檔。 

這時候的壓縮包可以正常的解壓,不用輸入密碼

2、將這個正常的壓縮包放進winhex里面,看看的是什么效果

 

第一個紅框的地方是壓縮源文件數據區:

50 4B 03 04 是zip頭文件標記;

14 00 是解壓文件所需要的PK版本;

00 00 是全局方式標記(看是否加密,可以就看第一個00,第二字節00可以忽略。00表示無加密,01表示有加密。不過只要是偶數就是無加密,例如00,02,04等,奇數就是有加密,例如01,03,09等)

 

接下來的三個紅框就是壓縮文件目錄區,分別為三個文件:

50 4B 01 02 是目錄中文件頭標記

14 00 壓縮使用的 pkware 版本

14 00 解壓文件所需 pkware 版本 

 00 00 是全局方式標記(看是否加密,可以就看第一個00,第二字節00可以忽略。00表示無加密,01表示有加密。不過只要是偶數就是無加密,例如00,02,04等,奇數就是有加密,例如01,03,09等)

 

 最后那個紅框就是壓縮源文件目錄結束標志。

 

接下來制作一個偽加密包

用winHex打開壓縮包

修改如下數據,把1和2進行偽加密

保存后打開壓縮包

發現1和2后面加上了一個星號,表示加密文件。

我們解壓時,發現需要輸入密碼了。

 

這就是偽密碼了吧,若是遇到壓縮包解壓需要密碼的時候先放在WINHEX中看看是不是偽加密,只要對比兩部分的全局方式位標記,若第二部分是09 00,那就把09修改為00就好

 或者
使用ZipCenOp去偽加密,解密命令java -jar ZipCenOp.jar r xxxx.zip         加密命令java -jar ZipCenOp.jar e xxxx.zip


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM