bon Le ordre
Flag: CYBN{ChUnK_0Rd3R_M@tT3R5}
Challenge
Solution
Les fichiers PNG suivent un format précis qui utilisent des chunks. Chaque chunk à un rôle précis, et certains ont également un ordre précis.
Si l'on regarde l'ordre des chunks de l'image avec un site comme celui-ci, on peut voir qu'ils sont désordonnés.

Il faut mettre le IEND à la fin, et remettre les IDAT à la suite en veillant à ce que celui qui ne fait pas 4096 octets soit le dernier. De mon côté, j'ai skip le chunk TEXT puisqu'il ne sert à rien.
On peut les remettre dans l'ordre avec TweakPNG ou en scriptant :
from PIL import Image
from io import BytesIO
with open('bon_Le_ordre.png', 'rb') as f:
data = f.read()
new_data = data[:4191] # Les premiers chunks
new_data += data[4382:8490] # IDAT 4096 bytes
new_data += data[8502:12610] # IDAT 4096 bytes
new_data += data[12706:] # IDAT 4096 bytes
new_data += data[4191:4382] # IDAT 179 bytes
new_data += data[8490:8502] # IEND
Image.open(BytesIO(new_data)).show()

Dernière mise à jour
Cet article vous a-t-il été utile ?