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:最后修改文件日期
……
于是乎,這樣就達到了zip偽加密的目的,可是這里又有一個疑問了,你可能會問,為什么改成09,而不是其他的數字呢,其實改成09只是舉的一個例子,只要末位是奇數,就代表加密,反之,末位是偶數代表未加密(這是我猜想的,具體操作也符合我的猜想,可我不知道這個原理是什么,如果你了解的話,歡迎來分享分享~^_^)
猜想:
既然加密標志位可以修改,那頭文件標記位應該也能修改吧,各位可以試試咯~:
?
您可以考慮給博主來個小小的打賞以資鼓勵,您的肯定將是我最大的動力。作者:落花四月 出處:https://www.cnblogs.com/lxz-1263030049/ 關于作者:潛心于網絡安全學習。如有問題或建議,請多多賜教! 版權聲明:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接. 特此聲明:所有評論和私信都會在第一時間回復。也歡迎園子的大大們指正錯誤,共同進步?;蛘咧苯铀叫盼? 聲援博主:如果您覺得文章對您有幫助,可以點擊文章右下角【推薦】一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!
總結
- 上一篇: 全球唯一:MySQL社区2018年度公司
- 下一篇: Java学习之模拟纸牌游戏,List的A