Un défi laid : retour sur la conception d'un challenge de reverse

Spécialité(s)


Résumé

Aux dernières vacances de février, j'ai eu l'opportunité de contribuer au CTF d'Insomnihack sous la forme d'un challenge de reverse. Si j'ai eu beaucoup de joie lors de son écriture, et malgré des retours positifs de la part des participants, celui-ci souffrait d'un défaut majeur. Cet article est donc une sorte de rapport de chall' par l'auteur, commentaire de texte inclus !


J'aime bien écrire des chall’s comme des exercices pédagogiques, des exercices qui nous font découvrir un aspect de l'informatique que l'on connaît pas ou peu, mais qui recèle de nombreux détails qui, s'ils ne sont pas forcément intéressants, n'en restent pas moins fascinants.

Or face à un binaire, et sous contraintes de temps, le reverseur aguerri cherche le plus court chemin, qui est souvent différent de celui prévu par l'auteur. Quel dommage que mes candidats passent à côté des découvertes que je leur aurais préparées ! Le chall’ est donc conçu sous forme de questions-réponses, la concaténation des réponses formant la solution du challenge, solution qui devrait avoir le bon ton d'être unique.

De manière synthétique, on peut donc imaginer une série de fonctions dont la signature en langage C++ serait :

bool checkx(char const* input);

Il se trouve que le thème du chall’ allait être les nombres à virgules flottantes, les questions...

Cet article est réservé aux abonnés. Il vous reste 91% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous