壓縮包偽加密


首先看一下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.自己簡單做了一個壓縮包,是正常的壓縮,壓縮包里有三個TXT文檔

這時候的壓縮包可以正常的解壓,不用輸入密碼
2.將這個正常的壓縮包放進winhex里面,看看的是什么效果(可以和后面偽加密狀態的HEX碼做對比,更好的理解偽加密)

標記的有點亂,應該是可以看懂的

第一個紅框的地方是壓縮源文件數據區,
50 4B 03 04是ZIP頭文件標記,
14 00 是解壓文件所需要的PK版本,
00 08是全局方式位標記(看是否有加密,好像是看00就可以,08可以忽略,00表示無加密,01表示有加密。這里說明一下:在某個文章中看到說是只要的偶數就是加密,例如00、02、04這樣的,奇數就是有加密,例如01 03 09.后來自己驗證了一下確實是這樣的)

下面用藍色圓圈圈住有三處地方,從這里可以看出這個壓縮包中有三個文件,在壓縮源文件目錄區中的
50 4B 01 02是目錄中文件文件頭標記,
3F 00是壓縮使用的 pkware 版本,
14 00是解壓文件所需 pkware 版本,
00 08是全局方式位標記(這里也是0008,和上面的一樣,所以可以判斷是沒有加密的。若是要偽加密,則將00修改為01,只要是奇數就可以)

3.接下來就要制作一個偽加密包,修改數據,看看效果

我的直覺是這個壓縮包有三個文件,所以就是需要修改三個地方的PK,若是數據太多不好找用搜索search--find hex valuex,輸入504B01023F,就可以直接定位
4.修改完之后保存,再次解壓,哈哈要密碼了

這就是偽密碼了吧,若是遇到壓縮包解壓需要密碼的時候先放在WINHEX中看看是不是偽加密,只要對比兩部分的全局方式位標記,若第二部分是09 00,那就把09修改為00就好
或者
使用ZipCenOp去偽加密,解密命令java -jar ZipCenOp.jar r xxxx.zip         加密命令java -jar ZipCenOp.jar e xxxx.zip
正常情況下使用7Z解壓或者360解壓,
放在linux寫可以直接提取,
使用binwalk ,binwalk -e無視密碼直接解壓
下面看一些真正的加密文件的HEX數據,兩部分的全局方式位標記都是0108(奇數是加密)


免責聲明!

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



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