如果你喜歡逛論壇,或是想將一個小文件傳給別人時,有很多地方是限制了文件類型的,不過一盤上傳圖片是沒問題的,rar轉(zhuǎn)jpg工具就是一個將rar文件轉(zhuǎn)換成jpg圖片格式的文件的工具。
說明:
rar轉(zhuǎn)jpg工具有什么用將一個看似一張為JPG格式的文件改名為rar,就可以用winrar來打開真正的內(nèi)容了,這個文件是用來把壓縮文件合并到JPG圖片中的。
原理:
這種「同時是多種格式」的文件叫做 polyglot,本來指同時能被多種編程語言編譯的源代碼。本質(zhì)上它是利用文件格式設(shè)計而 hack,最重要的一個原理就是:RAR 的文件格式規(guī)定文件頭不必從 0 地址開始。RAR 程序解壓文件時,會尋找
0x52 0x61 0x72 0x21 0x1a 0x07 0x00
這樣一串字節(jié),具體意義請見[1],前四個字節(jié)轉(zhuǎn)為 ASCII 碼恰好是「Rar!」。正常的 RAR 文件會把這串字節(jié)放在文件頭部,但 RAR 文件格式并沒有規(guī)定這是必須的(實際上,RAR 文件并不是開放的格式,怎么才算「正確」的 RAR 文件并無公共可見的文檔),所以如果文件頭并沒有出現(xiàn)它,RAR 解壓程序就會持續(xù)搜尋這個字串,找到之后把后面的部分當作 RAR 來處里,前面的部分就無視掉了。
反過來,JPG 格式規(guī)定文件起始兩個字節(jié)必須是 0xFF 0xD8,如果找不到這兩個字節(jié),那么就不認為它是 JPG 文件。
RAR 并不是唯一一種不規(guī)定文件格式必須起始于文件頭的格式。比如下面這個文件同時是:
Windows 應用程序
Adobe PDF
Java JAR
HTML 網(wǎng)頁
而加上一個字節(jié),還可以讓它成為 Python 腳本