[CTF]利用CRC32繞過RAR密碼(適合於小文字檔案)
利用CRC32繞過RAR密碼(適合於小文字檔案)
原文標題:教你繞過rar密碼
文章僅作rar密碼破解的探討,如有高見還望提出。
題目有點誇大其詞,事實是我也沒能想出一個更好的描述來總結這篇文章的內容,所以才寫了這麼一個標題。
問題背景:某bbs娛樂區釋出49選1的彩票,規則很簡單,每次由管理人員設定一個1~49的數字,放在txt檔案中,然後再用rar加密,上傳到帖子的附件中,然後由會員用論壇貨幣購買自己所選的號碼,對應可以選多少注,每注多少錢等等。
問題思考:從rar的角度而言,網路上還是有很多暴力破解的軟體的,但是如果你的密碼強度夠好,比如數字字母特殊符號一起再長達幾十位,個人電腦幾天不關機也破解不出來。所以這種方法最最不可取。當破解程式碼的代價遠遠大於破解到的目標的價值時,沒有人會去這麼做。
讀者可以自己測試一下,一個位元組的txt文字(也就是一個txt文字中只含有一個數字)
壓縮前為大小為1,壓縮後大小也為1,加密壓縮後大小為16;
2位元組的txt文字,壓縮前大小為2,壓縮後大小為2,加密壓縮後大小為16。
如果文字使用utf-8編碼的話對應文字會比ansi編碼大3,加密壓縮後依然為16。
轉者:無BOT格式的UTF-8文字和ansi編碼一樣的,編碼大3在於BOM頭。
**矛盾出現:**rar的壓縮文件中是提供一個CRC32的值,這個值是文件在壓縮之前的CRC32值,相信很多人都知道:每個不同的檔案都有唯一的一個CRC32值,就算是可能有重複的,那麼在內容為1~49的這個小範圍內的txt文字也不會有重複。為此,我用hash檢測工具挨個測試,並列出了一個表。
txt文字中的內容 | CRC32的數值 |
---|---|
1 | 83DCEFB7 |
01 | CF412436 |
2 | 1AD5BE0D |
02 | 5648758C |
3 | 6DD28E9B |
03 | 214F451A |
4 | F3B61B38 |
04 | BF2BD0B9 |
5 | 84B12BAE |
05 | C82CE02F |
6 | 1DB87A14 |
06 | 5125B195 |
7 | 6ABF4A82 |
07 | 26228103 |
8 | FA005713 |
08 | B69D9C92 |
9 | 8D076785 |
09 | C19AAC04 |
10 | A15D25E1 |
11 | D65A1577 |
12 | 4F5344CD |
13 | 3854745B |
14 | A630E1F8 |
15 | D137D16E |
16 | 483E80D4 |
17 | 3F39B042 |
18 | AF86ADD3 |
19 | D8819D45 |
20 | 8A707622 |
21 | FD7746B4 |
22 | 647E170E |
23 | 13792798 |
24 | 8D1DB23B |
25 | FA1A82AD |
26 | 6313D317 |
27 | 1414E381 |
28 | 84ABFE10 |
29 | F3ACCE86 |
30 | 936B4763 |
31 | E46C77F5 |
32 | 7D65264F |
33 | 0A6216D9 |
34 | 9406837A |
35 | E301B3EC |
36 | 7A08E256 |
37 | 0D0FD2C0 |
38 | 9DB0CF51 |
39 | EAB7FFC7 |
40 | DC2AD1A4 |
41 | AB2DE132 |
42 | 3224B088 |
43 | 4523801E |
44 | DB4715BD |
45 | AC40252B |
46 | 35497491 |
47 | 424E4407 |
48 | D2F15996 |
49 | A5F66900 |
轉者:研究表明,檔名與CRC32無關。壓縮後大小和本文範疇貌似無關
很明顯,沒有重複的。(上面是ANSI編碼的時候測試的,UTF-8的肯定和這個不一樣。)
轉者:UFT-8的BOM頭影響。實際UTF-8與ANSI一致
解決問題:根據上面列出的表格,圖片中CRC32為13792798的txt文字文件的內容為23。
反破解方法,在文字中加入其它任意文字即可。呵呵…