Loki-Challenge

Publié le 17 janvier 2008 par Zenstyle

Chose peu habituelle ici, je vais vous faire par d'un challenge organisé par l'un de mes professeurs []. Il s'agit d'un challenge informatique nommé Loki pour tester l'efficacité de Baldr. Mais déjà, voilà un petit rappel de ce qu'est Baldr ceux qui ne savent pas:

Baldr est un outil anti-fraude que nous avons développé [] (voir ces deux vidéos pour voir rapidement de ce qu'est cet outil). Cet outil utilise la notion de distance informationnelle pour détecter de la fraude par plagiat lors de TP informatique. Il est d'une puissance redoutable, mais pour mesurer son efficacité, il faudrait essayer de le mettre en défaut: c'est le sujet de ce challenge

L'objectif est donc de créer un programme qui va créer un copie d'un programme de TP suffisamment éloigné de la première sémantiquement pour ne pas être détecté et ainsi tromper le plus possible Baldr. Il y a aussi plusieurs points à respectés :

  • Il doit être capable de modifier du code source de manière automatique sans intervention extérieure. A priori la personne l'utilisant est dans une dynamique de fraude et on ne peut donc supposer aucune connaissance particulière en informatique, autre que démarrer un programme (le programme Loki en l'occurrence).
  • Loki ne doit pas changer ce que fait le code source original. Le code transformé doit toujours être compilable avec les même options, et l'exécutable doit avoir l'exact même comportement. Dit autrement Loki ne doit pas introduire d'erreur dans le code transformé.
  • Loki doit générer la plus grande distance possible entre le code source orignal et le code source transformé. Ce sera là un moyen simple de mesurer la qualité d'un programme de type Loki. Voir plus bas comment faire pour évaluer la qualité de la transformation.
  • La taille, ainsi que l'aspect du code source doit rester « discret », typiquement il ne doit pas trop s'éloigner en terme de taille par rapport à la taille moyenne des codes sources rendus par l'ensemble des étudiants. Il doit aussi rester lisible, car les codes sont lus, même si en pratique un prof' pas les moyens de pouvoir tous les comparer deux à deux.

Voilà donc un petit challenge assez intéressant qui utilise pleinement la compilation vu en troisième année. Baldr est maintenant utilisé pour tous les TP informatiques et marche vraiment de manière redoutable [], la moindre petite fraude est détecté [].
Bref, tout le monde peut participer et il y a ... rien à gagner à part le fait de passer à la postérité, d'être reconnu et avoir de la pub!

Pour plus d'info, vous pouvez consulter la page officielle et perso, si j'ai le temps, je me lancerais bien la dedans

Notes

[] Hubert Wassner

[] esiea Labs + Hubert Wassner

[] pour l'avoir vu en live la correction d'un TP

[] si l'on sait bien l'utiliser bien sur