diff --git a/_posts/2018-07-01-ndh16.md b/_posts/2018-07-01-ndh16.md index 18d4d7a..a91dbd8 100644 --- a/_posts/2018-07-01-ndh16.md +++ b/_posts/2018-07-01-ndh16.md @@ -155,14 +155,13 @@ sudo dnf install /usr/bin/exiftool exiftool basiq.png ``` -Une ligne, qui n'a pas retenue mon attention au début, est cependant suspecte : +Une ligne, qui n'a pas retenue mon attention au début, était cependant la clé du challenge : ``` Special Instructions : 4D4A57564533324E4B524E474D5A4A544F5256553436544850424844455354494A555A4653364B5A474A4D5445544B584C453255344D5356474E475855514C5A4A555A4555334B5049524354435753584A4A5755365632474E5247573252544B4A56564655323232495247584F574C4E4A553245325243534E42484732534A524A5A4346534D433249354C47595453454E4D32453656324F4E4A4E4649554C324A564C565336434F4E4A4558515753584B4532553652434B4E564E4549554C594C4A57554B4E434E495241584F54544E4A553245365632534E4A4D5855524A544C4A4B464B36535A4B5249584F5432454C4A554655334B4B4E4A4D564F534C324C455A455532535049354954475454324A555A553256434B4E524846495A5A534A555A54434F493D ``` -Tout celà ressemble à de l'hexadécimal. -On récupère le tout dans python : +C'est de l'hexadécimal. On récupère le tout dans python sous la forme d'un buffer : ```python3 exif_data = "4D4A57564533324E4B524E474D5A4A544F5256553436544850424844455354494A555A4653364B5A474A4D5445544B584C453255344D5356474E475855514C5A4A555A4555334B5049524354435753584A4A5755365632474E5247573252544B4A56564655323232495247584F574C4E4A553245325243534E42484732534A524A5A4346534D433249354C47595453454E4D32453656324F4E4A4E4649554C324A564C565336434F4E4A4558515753584B4532553652434B4E564E4549554C594C4A57554B4E434E495241584F54544E4A553245365632534E4A4D5855524A544C4A4B464B36535A4B5249584F5432454C4A554655334B4B4E4A4D564F534C324C455A455532535049354954475454324A555A553256434B4E524846495A5A534A555A54434F493D" @@ -171,7 +170,7 @@ d1 = bytearray.fromhex(exif_data) # On a en ASCII : MJWVE32NKRNGMZJTORVU46THPBHDESTIJUZFS6KZGJMTETKXLE2U4MSVGNGXUQLZJUZEU3KPIRCTCWSXJJWU6V2GNRGW2RTKJVVFU222IRGXOWLNJU2E2RCSNBHG2SJRJZCFSMC2I5LGYTSENM2E6V2ONJNFIUL2JVLVS6CONJEXQWSXKE2U6RCKNVNEIULYLJWUKNCNIRAXOTTNJU2E6V2SNJMXURJTLJKFK6SZKRIXOT2ELJUFU3KKNJMVOSL2LEZEU2SPI5ITGTT2JUZU2VCKNRHFIZZSJUZTCOI= ``` -Et là c'est le drame. J'essaye de décoder en base64 et rien. Un peu d'aide exterieure (merci !) me suggère d'essayer la base32. Jamais entendu parler ! +J'essaye de décoder l'ASCII du buffer comme de la base64 mais rien. Un peu d'aide exterieure (merci !) me suggère d'essayer la base32 dont je n'avais jamais entendu parler. ```python3 import base64 @@ -180,7 +179,7 @@ d2 = base64.b32decode(d1) # On a en ASCII : bmRoMTZfe3tkNzgxN2JhM2YyY2Y2MWY5N2U3MzAyM2JmODE1ZWJmOWFlMmFjMjZkZDMwYmM4MDRhNmI1NDY0ZGVlNDk4OWNjZTQzMWYxNjIxZWQ5ODJmZDQxZmE4MDAwNmM4OWRjYzE3ZTUzYTQwODZhZmJjYWIzY2JjOGQ3NzM3MTJlNTg2M319 ``` -Cette fois-ci ça ressemble à de la base64 ! +On avance, cette fois-ci ça ressemble à de la base64 : ```python3 d3 = base64.b64decode(d2)