這個練習的故事以比較副檔名與二進位檔案格式為前提,來探索二進位資料、模式比對與字串編碼等概念。學員的任務是撰寫一些函式,用來比較預期的媒體類型與檔案實際編碼出來的媒體類型。
這個故事方便定義以下幾種函式:
| 檔案類型 | 常見副檔名 | 媒體類型 | 前幾個位元組的二進位「簽章」 |
|---|---|---|---|
| ELF |
none或"exe"
|
"application/octet-stream" |
0x7F, 0x45, 0x4C, 0x46 |
| BMP | "bmp" |
"image/bmp" |
0x42, 0x4D |
| PNG | "png" |
"image/png" |
0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A |
| JPG | "jpg" |
"image/jpg" |
0xFF, 0xD8, 0xFF |
| GIF | "gif" |
"image/gif" |
0x47, 0x49, 0x46 |