Top 20

1 0x00h 696 pts
2 boris39 696 pts
3 neoxquick 677 pts
4 maf-ia 659 pts
5 eax 658 pts
6 thefinder 640 pts
7 nikokks 615 pts
8 benito255 605 pts
9 mego 589 pts
10 madbat2 579 pts
11 plucth 561 pts
12 Mart 550 pts
13 Stupefy 529 pts
14 rostale 516 pts
15 tehron 502 pts
16 Kithyane 498 pts
17 egosum 471 pts
18 malose 428 pts
19 CoYoTe99 414 pts
20 Undr 413 pts

Classement complet

Shoutbox

6 Nov - 8:17 am

Bonjour, un léger problème sur l'épreuve 10 : Une fois réussie, le champ "points earned" indique 72 au lieu de 7 En revanche sur le site le nombre de points comptabilisés est bien 7 Merci pour ce site génial !

21 Oct - 9:48 pm

Équation du challenge 52 corrigée, merci

16 Oct - 8:43 am

Bonjour, il y a aussi un problème d'affichage "invalid equation" dans le challenge 52. Merci

14 Oct - 8:57 pm

Barbapapou l'équation du challenge 29 a été corrigée

4 Oct - 10:30 am

Bonjour, il y a un problème avec l'affichage d'une équation dans le challenge 29

24 Aug - 7:10 pm

@rostale, en effet l'épreuve 21 ne fonctionne plus depuis un moment, pour l'instant on a pas prévu de temps pour la réparer je pense qu'on va finir par la supprimer tout simplement. @nikokks, ok je t'envoie un mail

22 Aug - 11:40 pm

Salut Metatr0n. pourrait on avoir une discussion en MP. J'imagine que tu as mon mail. Ce serait pour discuter de microcontest en general.

28 Jul - 10:38 pm

Pouvez-vous vérifier l'épreuve Email (21) ? En effet, je ne reçois pas d'email de la part du site. Merci

28 Jul - 7:29 pm

Bonjour et merci. Cependant, j'ai résolu le challenge qui me posait pb, donc plus rien à demander... pour l'instant.

28 Jul - 1:48 pm

Ça devrait être réparé maintenant

Connexion
Mot de passe oublié

Supportez nousx

Vous aimez µContest ?
Supportez nous en votant (fun et difficulté) pour µContest sur WeChall :)
Si vous ne l'avez pas encore fait, profitez-en pour lier votre compte
Wechall à µContest pour pouvoir voter !

Merci

Détails de l'interface (Version 2)

Pour valider une épreuve, vous devez récupérer les variables nécessaires à sa résolution, et renvoyer la ou les réponses au site. Cette page décrit l'interface et le protocole de communication avec le site.
Dans le cas où vous ne voulez pas vous soucier de l'interface avec le site, la bibliothèque µContest est à votre disposition, disponible pour l'instant en C/C++, Python et Java.

Récupération des variables d'une épreuve

Première étape, vous devez vous connecter au site pour récupérer les variables. Pour cela, vous devez récupérer la page : http://www.microcontest.com/contests/i/contest.php, avec i l'ID de l'épreuve que vous voulez valider.
Par exemple pour l'épreuve Ave Caesar I vous devez récupérer la page http://www.microcontest.com/contests/4/contest.php.
Dans ce cas vous pouvez par exemple obtenir :

Nombre_variables=2
[txt_crypte]
Longueur=50
Valeur=QMLYRCJGCPBSAFCKGLBCDCPEGDJYLRQMLAFCDAFYQQCBCJGJJC
[key]
Valeur=24

Toutes les pages d'épreuves sont formatées de la même manière :
- Une première ligne : Nombre_variables=x avec x le nombre de variables contenues dans la page.
- Une énumération des variabes fournies, commençant par le nom de la variable entre crochets. Les lignes suivantes sont :

  • La longueur de la donnée proprement dite à la ligne suivante, précédée de Longueur=, paramètre qui est optionnel, mais indispensable lorsque la donnée contient des caractères nuls.
  • La donnée de la variable, précédée de Valeur=.

Enfin, chaque ligne se termine par un <br/> (sans espace).


Important

Il ne suffit pas de récupérer simplement cette page pour pouvoir résoudre l'épreuve. Il faut également passer en paramètres POST ces informations :

  • username : Votre nom d'utilisateur
  • password : Votre mot de passe, hashé en SHA1
  • ID : l'ID de l'épreuve
  • contestlogin=1 : Une variable à laquelle vous devez donner la valeur 1
  • version=2 : Vous permet d'activer la version 2 du protocole décrite par cette page. La version 1 n'a plus d'intérêt et n'est plus documentée.

Le site vous renverra dans l'en-tête de la page générée un cookie : un 'PHPSESSID' que vous devez utiliser par la suite pour envoyer votre réponse, sans quoi elle sera ignorée.

Erreurs possibles

Au lieu de la page des variables, vous pouvez récupérer une page contenant :

  • Erreur : Bruteforce interdit, veuillez patienter au minimum 20 secondes entre deux tentatives. : Cela veut dire que vous avez essayé de récupérer des variables deux fois en moins de 20 secondes.
  • Erreur authentification : Cet utilisateur n'existe pas : L'utilisateur n'existe pas.
  • Erreur authentification : Mot de passe incorrect : Le mot de passe est incorrect.
  • Erreur authentification : Votre compte n'est pas encore activé : Le compte n'est pas encore activé.

Envoi de votre réponse au site

Une fois que vous avez traité les données fournies par le site et résolu l'épreuve, vous devez renvoyer cette réponse au site.
Pour cela, il faut faire une requête POST à la page : http://www.microcontest.com/contests/i/validation.php, avec i l'ID de l'épreuve que vous voulez valider.
Les variables retournées au site sont passées en paramètres POST, paramètres portant le même nom que les variables. Aucune données supplémentaires ne sont requises, en dehors des paramètres de connexion (PHPSESSID) fournis par la page contest.php, il ne faut donc pas renvoyer votre pseudo et mot de passe.
Dans l'exemple précédent, on devrait donc renvoyer à la page http://www.microcontest.com/contests/4/validation.php le paramètre suivant :

  • txt_clair
Notez que si vous avez plusieurs paramètres à renvoyer, vous devez les séparer par des '&', par exemple comme ceci : "anwser1=blabla&answer2=4"
Lors de la tentative de validation, vous obtiendrez la page suivante :

success:0
timeout:0
already:0
points:0
error:...

success vaudra 1 lorsque les paramètres retournés sont corrects, 0 sinon.
timeout vaudra 1 si vous avez dépassé le temps imparti de 4 secondes, 0 sinon.
already vaudra 1 si vous avez déjà validé l'épreuve, 0 sinon.
points apparaîtra seulement lorsque vous validez l'épreuve pour la première fois, donc lorsque vous avez success:1 timeout:0 already:0.
error apparaîtra lorsqu'il survient des erreurs notamment au niveau de l'authentification.

Dès lors, il est possible de valider les épreuves plusieurs fois, bien que les points soient attribués qu'une seule fois.


Exemple

Cette page contient un exemple de communication entre un programme destiné à résoudre l'épreuve Somme de deux entiers et le site.
Il y a 4 paquets :

  • connexion à contest.php
  • renvoi des données par le site
  • envoi de la réponse à validation.php
  • réponse du site.
Tous les champs des en-têtes POST ne sont pas forcément nécessaires (le Accept: */* par exemple), mais ce qui est important est la transmission du cookie PHPSESSID.