En dessinant la courbe des données du fichier,
je n'ai pas pu en déduire grand chose…
En zoomant un peu, on devine un genre de sinusoïde, irrégulière
J'ai tenté d'en générer l'audio, mais ce n'est qu'un bruit de fond
(voir
le zip avec les fichiers du challenge
)
Libreoffice ne m'a pas trop aidé non plus
Un signal?
Tentant de manière un peu hasardeuse et suite au challenge
Par câble (Divers)
,
je me suis dit qu'il s'agit peut-etre d'un signal "analogique" à convertir
Je trouve alors une succession de 0 et de 1 (logique, j'ai créé un signal numérique)
Le "mot" binaire fait 330 bits, ce qui n'est pas un multiple de 8. C'est en revanche un multiple de 10
et le titre "8 vers 10" me pousse à croire qu'on a un simili-code-ASCII sur 10 bits
Comme on sait que le flag est de la forme 404CTF{…}
et que le mot binaire représente surement le flag,
on peut inférer ce que les premiers et derniers bits représentent,
et faire le remplacement dans le reste du mot binaire
Inférence du flag
Ca me laisse beaucoup de "trous" dans mon flag, essayons de les boucher:
le flag est sûrement en français
Le 1010110101 (693) revient souvent: il pourrait représenter l'espace _
et il n'y a alors pas beaucoup de mots de la forme #.co#..
On va partir sur le mot "décoder" comme premier mot, et faire les remplacements:
decoder_le_???o?_?_?a??le en transcrivant le l33tspeak
Le l étant le code 236, je "piffe" que le code 230 sera 6 lettres avant dans
l'alphabet (ou dans la table ASCII, ce qui revient au même), donc, 230 serait peut-etre f
Au vu du titre du challenge et des trous restants, je piffe alors que le milieu du flag serait
du genre 8f10f, ce qui donnerait décoder le 8f10f c'est facile
Inférer le flag me sert ici à trouver un indice sur la vraie méthode de résolution,
car étant en l33tspeak, je ne sais pas si certains caractères sont des e ou des E
ou des 3
10 bits encoding
Je cherche alors sur le net un encodage en 10 bits (plutôt que 8)…
et j'aurai dû commencer par là!
Je n'était pas loin avec "8f10f"!
Je pensais à "f" pour "float" initialement, allez savoir…
En appliquant le décodage 8b/10b j'obtient des nombres, mais je n'arrive pas à remonter au code ASCII
Ayant trouvé une lib Python pour ce codage 8b/10b, je la tente
Flag
Et ouais, cette lib marche bien mieux que ma tentative! Un peu de colle PHP/Python pour
faire "joli" et le flag est là: 404CTF{d3C0d3r_l3_8b10b_c_f4c1l3}
Initialement, je pensais qu'on aurait dû changer de base et transformer les nombres flottants
de la base 10 à la base 8 par exemple. Mais ce fut une fausse piste, que je n'ai pas détaillée ici.