CTF鑑識

LSB

Stegsolve 思路

  1. 先檢查有無可疑的plane(雜訊)
  2. 透過Stereogram Solver解決,並且根據前面找出的Planes進行檢查 調整LSB模式

PNG

IHDR CRC修復

由於CRC由IDCH到IHDR的17 bytes位置計算得出。

因此IHDR的起始位址在於12,並且到16IDHR 四個字元,再來是四個寬度與高度,後面五bytes 為其他資訊

為了方便進行破解,這裡將各個欄位區分開來, 以便猜測寬度或高度。

with open('corrupted_png.png', 'rb') as f:
    data = f.read()
    idch = data[12:16]
    width = data[16:20]
    height = data[20:24]
    ihdr_info = data[24:29]

計算CRC可以透過以下算式。

    crc32 = binascii.crc32(idch + width + height + ihdr_info) & 0xffffffff
    print(hex(crc32))

之後可以透過暴力猜測高度或寬度。

參考CTF PNG

注意: 仔細觀察相關檔案的寬度或高度應該會發現big endian endian


CTF