iT邦幫忙

2025 iThome 鐵人賽

DAY 23
0
Security

飲血使徒的隱寫術奇境系列 第 23

【Day23】隱寫練功坊──Root Me - 6──APNG 隱寫

  • 分享至 

  • xImage
  •  

APNG - Just A PNG

題目資訊

Root Me 的 medium 題 APNG - Just A PNG,本題敘述如下。

Your joking colleague challenges you to find the message hidden in this animation.

首先題目給了一個 APNG 檔案,且標籤寫 Just a matter of time,檔案用 Windows 的相片打不開,所以先來查查 APNG 是甚麼

解題思路

首先根據題目給的資料來源

https://wiki.mozilla.org/APNG_Specification
https://zh.wikipedia.org/zh-tw/APNG

APNG

APNG 和 GIF 一樣都是動態圖片的檔案格式,出現時間比 GIF 晚,由 Mozilla 公司社群 2004 年創立,因為檔案的色彩上限比 GIF 高,所以畫質比較清晰,但是因為讀取速度較慢且使用度相對較低,所以支援性比較差。

GIF APNG
畫質 較差 較好
儲存大小 較大 較小
讀取速度 較快 較慢
軟體支援 較多 較少

在了解 APNG 以後,我們再回來看看題目的檔案,根據維基的資料顯示,Chrome 有支援 APNG,所以用 Chrome 開看看發現是一張切換很慢的動態圖片,每一張間隔都超長,再加上題目提示 Just a matter of time ,猜測和時間有關係

解法

既然跟時間有關係,我們就來看一下延遲時間,先用線上工具來看看

https://ezgif.com/apng-maker/

https://ithelp.ithome.com.tw/upload/images/20251007/20178809nZhpHfQ63G.jpg

看到每個時間都很長,然後這個數字看起來都怪怪的,所以對照一下資料

https://wiki.mozilla.org/APNG_Specification

fcTL: The Frame Control Chunk

 byte
    0    sequence_number       (unsigned int)   Sequence number of the animation chunk, starting from 0
    4    width                 (unsigned int)   Width of the following frame
    8    height                (unsigned int)   Height of the following frame
   12    x_offset              (unsigned int)   X position at which to render the following frame
   16    y_offset              (unsigned int)   Y position at which to render the following frame
   20    delay_num             (unsigned short) Frame delay fraction numerator
   22    delay_den             (unsigned short) Frame delay fraction denominator
   24    dispose_op            (byte)           Type of frame area disposal to be done after rendering this frame
   25    blend_op              (byte)           Type of frame area rendering for this frame 

但這個 700 是直接以 1/100 秒為單位,實際的公式是

delay time (秒) = delay_num / delay_den 或 100

實際上檔案抓出來的 fcTL chunk

delay_num = 70
delay_den = 10

億點點通靈時間

看到 70 76 65 等等數字,直覺上就應該想到 ASCII code,所以我們就來對照吧

delay_num=70  -> 'F'
delay_num=76  -> 'L'
delay_num=65  -> 'A'
delay_num=71  -> 'G'
delay_num=58  -> ':'
delay_num=80  -> 'P'
delay_num=51  -> '3'
delay_num=80  -> 'P'
delay_num=111 -> 'o'
delay_num=70  -> 'F'
delay_num=82  -> 'R'
delay_num=111 -> 'o'
delay_num=71  -> 'G'

整個合起來就是

FLAG:P3PoFRoG

小結

今天了解了 APNG 這個檔案格式和它的結構,不過可惜好多地方都不支援qq

本日飲血

今天是七瀨靜羽


上一篇
【Day22】隱寫練功坊──Root Me - 5──pdf 隱寫
下一篇
【Day24】隱寫練功坊──Root Me - 7──頻譜隱寫
系列文
飲血使徒的隱寫術奇境24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言