Principe:
Corriger le fichier PNG corrompu (0x0A, CRC32, chunck lengts) issu du challenge 1/2 pour y trouver le flag
Le challenge
0x0A vs 0x00 ?
IHDR
Si l'IHDR n'avait pas été similaire au PNG "Capture d'écran", sa longueur n'aurait pas été bonne et on aurait donc dû compter les octets pour respecter la spécification du W3C pour le format PNG
CRC32
pngcheck étant assez sympa, il nous dit le CRC attendu. On va donc considérer que les données sont correctes, et que le CRC32 dans le fichier est faux. On remplace donc (sed) le CRC32 erroné par le CRC32 correct que pngcheck nous donne
Le problème, c'est que l'image plantera encore ensuite. En effet, il faut inverser l'approche: le CRC32 est correct, mais les données du IHDR sont corrompues. Le champ f288 indique la largeur de l'image, qui semble bien trop grande!
EOF
Flag
Apparemment, Ubuntu n'a pas de problème à ouvrir le PNG même avec un IEND corrompu. On aurait donc pu se passer du dernier patch, mais bon, autant faire propre!