隱寫術 - ZIP文件偽加密


簡述


在:實驗吧/隱寫術/小家伙挺可愛中遇到了zip偽加密這個概念,於是乎找了很多資料,來簡單記錄下我的心路歷程吧~^_^~

原理


zip偽加密是在文件頭的加密標志位做修改,進而再打開文件時識被別為加密壓縮包。

背景


首先,我們來看zip文件頭協議。這里以中文資料為證,但是仍然建議大家去http://www.pkware.com 閱讀官方文檔,雖然英文讀起來有些困難。

一個 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 文件注釋長度

猜想


所以如果把一個zip文件的文件頭或者加密標志位進行適當修改,那就可能會改變文件的可讀性了唄!

測試(一)


親測例子:先壓縮一個1.zip,再用Winhex打開,如下圖:

這里寫圖片描述

壓縮源文件數據區: 
50 4B 03 04:這是頭文件標記 
14 00:解壓文件所需 pkware 版本 
00 00:全局方式位標記(有無加密) 
08 00:壓縮方式 
07 76:最后修改文件時間 
F2 48:最后修改文件日期 
…… 
壓縮源文件目錄區: 
50 4B 01 02:目錄中文件文件頭標記(0x02014b50) 
1F 00:壓縮使用的 pkware 版本 
14 00:解壓文件所需 pkware 版本 
00 00:全局方式位標記(有無加密,這個更改這里進行偽加密,改為09 00打開就會提示有密碼了) 
08 00:壓縮方式 
07 76:最后修改文件時間 
F2 48:最后修改文件日期 
……

綜上所述,如果把第二個加密標記位的00 00改為09 00,打開就會提示有密碼: 
這里寫圖片描述 
這里寫圖片描述

於是乎,這樣就達到了zip偽加密的目的,可是這里又有一個疑問了,你可能會問,為什么改成09,而不是其他的數字呢,其實改成09只是舉的一個例子,只要末位是奇數,就代表加密,反之,末位是偶數代表未加密(這是我猜想的,具體操作也符合我的猜想,可我不知道這個原理是什么,如果你了解的話,歡迎來分享分享~^_^)

 

【注】本文轉自:http://blog.csdn.net/ETF6996/article/details/51946250


免責聲明!

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



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