天天看點

winrar加密分析

【原創】winrar加密分析
winrar加密分析

标 題: winrar加密分析

作 者: 天易love

時 間: 2009-10-02,06:33:10

鍊 接: http://bbs.pediy.com/showthread.php?t=98812

條件限制,用非智能手機發的,因而無法圖文并貌,請大家包涵。

一、加密檔案大體結構:

    1、隻加密檔案内容時。偏移14-15h是對其後一直到檔案頭結束處也就是加密資料開始處的校驗值。檔案頭中檔案名後至檔案頭結束處是八位元組的salt和5位元組的未知區域(功能暫不詳),加密資料後緊跟固定的結束字元串c4 3d 7b 00 40 07 00。

    2、頭和内容均加密時:偏移14-15h是salt2,尾部還出現一次。緊跟的是加密的檔案頭(頭中尾部是salt1和5位元組的未知區域)和加密的檔案内容(壓縮後再進行aes加密),最後就是salt2和經過aes加密的固定結束字元串。注:生成salt的函數調用了2次。

    二、簡述salt算法:

     1、由SystemTime得到FileTime;

        2、分别對FileTime的兩個DWORD進行hash_process;

     3、hash_final後得到的digest的最前面的兩個DWORD就是salt。

三、加密過程:

    1、先将salt接在unicode形式的密碼後再用hash_final生成aesinit、aeskey、10輪round key。

   2、壓縮好的檔案内容分組長為每一個分組128bit,開始加密前先與前一個分組xor生成一個state參與aes加密,第一個分組與aesinit進行xor。

    四、隐患:

    由于salt是随機産生,因而aeskey和round key也是随機的,檔案加密結果就是随機的。這個變量的使用給我們提供了利用空間。插一句,假如由加密後資料逆推得到aeskey但由于是經過hash得到,這是不可逆的,是以不可能知道密碼。唯一可行就是讓其加密過程中自己将密碼儲存到salt處最好用可逆向的加密算法處理一下,這不會有任何影響,隻是讓它多了層含義。

   以上是我的一點膚淺的認識,望批評指正!

 天易love

 2009-10-2

繼續閱讀