1. 程式人生 > >墨者學院 - 密碼學加解密實訓(Zip偽加密)

墨者學院 - 密碼學加解密實訓(Zip偽加密)

zip格式檔案偽加密

實踐是檢驗真理的唯一標準

簡介

zip檔案是一種壓縮檔案,可進行加密,也可不加密。而偽加密是在未加密的zip檔案基礎上修改了它的壓縮原始檔目錄區裡的全域性方式位標記的位元值,使得壓縮軟體開啟它的時候識別為加密檔案,提示輸入密碼, 而在這個時候,不管你用什麼軟體對其進行密碼破解,都無法開啟它!這就是它存在的意義!

zip官方文件
zip中文詳解

檔案組成

  1. 壓縮原始檔資料區
  2. 壓縮原始檔目錄區
  3. 壓縮原始檔目錄結束標誌

樣本示例(用winhex軟體開啟)

未加密

未加密
第一個熒游標記條中:(壓縮原始檔資料區初始位置)
504B0304(檔案頭標記,4bytes)
1400(解壓檔案所需pkware版本,2bytes)
0000(全域性方式位標記,2bytes)未加密標誌
第二個熒游標記條中:(壓縮原始檔目錄區初始位置)
504B0102(目錄中檔案檔案頭標記,4bytes)
1F00(壓縮使用的pkware版本,2bytes)
1400(解壓檔案所需pkware版本,2bytes)
0000(全域性方式位標記,2bytes)壓縮軟體識別未加密標誌

偽加密

這裡寫圖片描述
壓縮原始檔資料區的全域性方式位標記為0000(未加密)
壓縮原始檔目錄區的全域性方式位標記為0900(軟體識別加密)
如何做到?
就是將未加密檔案的壓縮眼檔案目錄區的全域性方式位標記改為0900

(真)加密

這裡寫圖片描述
壓縮原始檔資料區的全域性方式位標記為0900(已加密)
壓縮原始檔目錄區的全域性方式位標記為0900(軟體識別加密)
因此已加密

應用

文件檔案隱寫

全域性方式為標記還有哪些值?

四個數字中只有第二個數字對其有影響,其它的不管為何值,都不影響它的加密屬性!
第二個數字為奇數時 –>加密
第二個數字為偶數時 –>未加密

參考資料

 

該連結為notepad++官方外掛下載連結(默默說一句csdn的積分下載真垃圾,tmd又不是自己寫的工具上傳還要積分??免費共享不好嗎???浪費時間找資源賺積分,呵呵。。。嗯唯一的好處是方便了伸手黨呵呵,,,還有說什麼要翻牆的,,,黑人問號臉,,,)

http://docs.notepad-plus-plus.org/index.php/Plugin_Central

notepad+,新增16進位制外掛,有兩個版本,下好解壓放在notepad++安裝目錄的plugin目錄下,重啟notepad++即可(這倆檔案命名一樣,親測修改名字區分依然會有衝突,二選一吧。(為什麼不用winhex,winhex也好,csdn一群不懂分享的呵呵,懶得折騰,notepad大法好))

根據以上的知識描述,將檔案頭的0908更改為0008即可

 

唉,用的是7-zip,解壓選擇提取到當前目錄顯示檔案頭出錯,在這裡浪費了時間,實際上解壓出來的檔案加txt字尾名記事本開啟即可。