引用:
作者fto
SFV原來是這麼糟糕的演算法∼怎麼碰撞率這麼高,
三個ISO檔全都是FFFFFFFF... 
|
不是這樣的,就算碰撞率高,也沒有這麼巧的事!
微軟發佈的 ISO 都是使用內部的影像檔工具 cdimage.exe 來製作 ISO 檔,此工具有一個參數
-x compute and encode "AutoCRC" values in image
會在製作影像檔時計算該 ISO 的 CRC 值並寫入在 ISO 檔尾
以上面的大量授權版為例
zh-tw_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74140.iso
使用 Hex 編輯器或 Total Commander Viewer 開啟,跳到檔尾,會看到
最後面的四個 byte 要倒過來看,91F7B572 就是該 ISO 檔的 CRC 值,用一般的 SFV 軟體檢驗會剛好互補成 FFFFFF
因此微軟有一個檢查工具 CRC.EXE 可以做這件工作
F:\>crc zh-tw_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74140.is
o
CRC Verification Utility, Version 3.05
Copyright (C) Microsoft, 1992-1997
100% complete
AutoCRC signature for file zh-tw_windows_xp_professional_with_service_pack_3_x86
_cd_vl_x14-74140.iso (633923584 bytes) is
0x91F7B572
AutoCRC indicates the file zh-tw_windows_xp_professional_with_service_pack_3_x86
_cd_vl_x14-74140.iso is
VALID
表示這個影像檔是正確未被篡改過的原始 ISO。
若將上述 ISO 燒成光碟,此 CRC 亦可檢驗,只要將上面的 ISO 檔名改為光碟代號即可。
很多人喜歡將原版 ISO 用 UltraISO 重新編輯加入其他東西如序號,再另行存檔,整個結構都被破壞,AutoCRC 也就無效了。
下載
CRC.EXE