Top 20

1 0x00h 700 pts
2 boris39 700 pts
3 neoxquick 681 pts
4 maf-ia 662 pts
5 thefinder 644 pts
6 benito255 608 pts
7 mego 591 pts
8 madbat2 581 pts
9 Mart 553 pts
10 Stupefy 533 pts
11 nikokks 512 pts
12 tehron 504 pts
13 Kithyane 502 pts
14 plucth 480 pts
15 egosum 473 pts
16 CoYoTe99 416 pts
17 Undr 415 pts
18 Zeta 415 pts
19 loonies2 411 pts
20 Armavica 409 pts

Classement complet

Shoutbox

12 May - 11:47 am

Working again now.

10 May - 4:05 pm

Hello, sorry for the late answer, in fact yes there is an issue with the mail, we will try to fix it quickly. Thanks for reporting

7 May - 6:07 pm

Hi there is a issue for the challenfe Email (number 21). I don't receive a mail on any of them: gmail, hotmail, yahoo. do i fail or is it the challenge ?

28 Feb - 10:35 am

Yes we fixed it

27 Feb - 10:00 pm

Thank you, just validated contest22. The solution checker seems to have been fixed.

27 Feb - 8:40 am

Yes several solutions are accepted of course. I will check one of your answers

26 Feb - 7:51 pm

No 500 error, but the solutions I'm submitting can be verified to be correct. It can't be that only one configuration is accepted, right? - as there are multiple correct configurations for each problem.

26 Feb - 5:54 pm

contest 22 is not concerned by the issue I found, and seems to be working (I suppose you don't have 500 error on this one ?). Your solutions are indeed rejected, but I did not check them yet

26 Feb - 3:25 pm

The validation for contest 22 also seems to be wrong (it's not accepting solutions that are clearly correct). I submitted bug report yesterday.

26 Feb - 9:59 am

Ok I fixed the issue It is higly possible that other challenges are impacted, so don't hesitate to tell meif you encounter this again. Thank you for reporting

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.