目前有效的辦法是暴力破解,結合壹個密碼字典。
壹、加密文件的壹般結構:
1,僅加密文件內容。Offset 14-15h是從那時起直到文件頭結束,即加密數據開始的校驗值。從文件頭中的文件名到文件頭的末尾是壹個8字節的鹽和壹個5字節的未知區域(功能暫時未知),加密後的數據後面是壹個固定的結束字符串c4 3d 7b 00 40 07 00。
2.頭和內容加密時:14-15h的偏移量為salt2,尾部再次出現。接著是加密的文件頭(salt1的未知區域和文件頭末尾的5個字節)和加密的文件內容(壓縮後aes加密),最後是由aes加密的salt2和固定結尾字符串。註意:生成salt的函數被調用了兩次。
其次,簡單描述壹下salt算法:
1,從SystemTime獲取FileTime
2.hash_process分別處理FileTime的兩個DWORD
3.在hash_final之後獲得摘要的前兩個雙字是salt。
三、加密過程:
1.先將salt連接到unicode密碼,然後使用hash_final生成aesinit、aeskey和10 round round密鑰。
2.對於每個包,壓縮文件內容的包長度是128位。加密前與前壹個包異或生成壹個狀態參與aes加密,第壹個包與aesinit異或。
四、隱患:
因為salt是隨機生成的,aeskey和round key也是隨機的,文件加密結果也是隨機的。這個變量的使用給我們提供了使用的空間。對了,如果aeskey是從加密數據中獲取的,由於是通過hash獲取的,所以是不可逆的,所以不可能知道密碼。唯壹可行的方法是在加密過程中將密碼保存到salt本身。最好用可逆加密算法來處理,不會有什麽影響,只會讓它更有意義。