第一步:用winhex將下面數(shù)據(jù)生成rar格式的文件,
winrar“秒破”嘗試
。以下是引用片段:
526172211A0700CF907300000D0000000000000056947424965E00600000004900000002E3B1696DEE413D3B1D33310020000000C3EBC6C6B2E2CAD44279CCECD2D76C6F76652E74787400796AD234784B6DD58B0A427929591366006C6F7665002E7478742E2E5B7A2D7B7D2E2E39423843569449C8691BEC768E16663C5F9ED737AE6CDDC6178C0837F6BB88DAA8356B02A700C776FC0F1091C1D16712FC075A011D5B5DEF7E46966E8B878B80DABCDF9683C49165FFB993A77CDE8600A1262200F3D3D5315DF0FC4E2B3ACAA3943F142EC43D7B00400700
第二步:在winhex中取65h-71h一段數(shù)據(jù)ctrl+c后粘貼到密碼輸入框點確定完成秒破。(實例一)
實例二
以下是引用片段:
526172211A0700CE997380000D00000000000000395B7A2D7B7D2E2ED417190FDC99688612D2B31773CD93FE082F30D3229C8F77F51B936AD003E65AADF605471FA4ED0E3655748BCC8F5FA5BFDE4651275A2AA306CB7999C579C249C5AF56A0D3744BD7A695586FEF9FB1AB146CA80DED886936DE3AB003EC44215BA8497E4C1A974D45810C8F1277726881548FBAB842BCF9E17B815C116260ADFEB9151DF97C6F93A673629691B767F883950018B7DE7C0D86FFF04A10905E32BD1DB015B709A298DB8D2C42DF23A131F2AD999AA3BB2316F031C5115c179a2f877a41393761683939
選中14h-1bh一段數(shù)據(jù)ctrl+c后粘貼到密碼輸入框中后面再加上dch-e3h處的ASCII字符,確定后即秒破了!信不信由你!
原理分析:
RAR加密的原理,是將UNICODE格式的密碼,與隨機生成的一個8字節(jié)的SALT連在一起,根據(jù)它生成AES算法的密鑰來進(jìn)行加密,
電腦資料
《winrar“秒破”嘗試》(http://www.lotusphilosophies.com)。而加密后的RAR中,除了加密后的原壓縮內(nèi)容之外,文件頭結(jié)構(gòu)還保存了這個SALT值用于解密。
原則上SALT的生成過程跟用戶輸入時的密碼一點關(guān)系都沒有,因此它本來不保存關(guān)于密碼的顯式信息,但是我們可以對WINRAR程序進(jìn)行patch,使SALT跟密碼發(fā)生直接聯(lián)系,從而使這個SALT成為潛在的“后門”。
由于SALT只有8個字節(jié),所以對于8個字節(jié)以內(nèi)的密碼,可以直接保存在SALT中(或者簡單的XOR一下或其他,反正可以用很容易的可逆的算法處理)。
那么密碼超出8字節(jié)怎么辦?這里樓主分為兩種方式處理,分別是實例一和實例二。
實例一應(yīng)該是利用了把文件頭的HEAD_SIZE字段改大,這樣文件頭多出來的地方(WINRAR讀取文件頭時是跳過這部分的)就可以保存密碼8字節(jié)以后的內(nèi)容。實例一中的65h-6ch內(nèi)容就是SALT,而6dh-71h就屬于把HEAD_SIZE改大之后多出來的部分了。
但是實例一這種方法應(yīng)用的前提是文件頭沒加密。如果文件頭被加密(這時MAIN_HEAD的HEAD_FLAGS包含0x0080),那么MAIN_HEAD后面緊跟著的就是SALT(實例二的14h-1bh內(nèi)容),SALT后面則是被加密的所有內(nèi)容(包括文件頭)。那么怎么把密碼8字節(jié)以后部分搞進(jìn)去?實例二的做法,我猜是因為加密過程是16字節(jié)為一組,加密后的內(nèi)容也應(yīng)該是16字節(jié)的倍數(shù),所以解密時也以16字節(jié)為單位讀取,當(dāng)文件內(nèi)容最后跟著一段小于16字節(jié)的數(shù)據(jù)時,WINRAR解密時直接無視這段數(shù)據(jù)。于是就可以把密碼的后半部分放在文件最后(但是不能超過16字節(jié)),這樣用這種方法可以保存不超過23字節(jié)的密碼。
按照這個思路,我調(diào)試了一下我電腦上的WINRAR 3.70。
我只考慮密碼不超過8字節(jié),實際上問題就是找到WINRAR程序操作壓縮的過程,在程序把SALT和密碼連在一起之前,把SALT改為和密碼一樣,這樣壓縮出來的就是那樣的文件了。超過8字節(jié)的代碼只要按照上述思路自己修改生成后的RAR就可以了。
[1] [2] 下一頁