Top 20

1 0x00h 705 pts
2 boris39 705 pts
3 neoxquick 686 pts
4 maf-ia 667 pts
5 thefinder 648 pts
6 benito255 612 pts
7 mego 594 pts
8 madbat2 585 pts
9 Mart 557 pts
10 tehron 507 pts
11 Kithyane 506 pts
12 plucth 483 pts
13 egosum 477 pts
14 CoYoTe99 420 pts
15 Undr 418 pts
16 Zeta 418 pts
17 loonies2 414 pts
18 Armavica 413 pts
19 vitalimarrenra 406 pts
20 b0n0n 398 pts

Classement complet

Shoutbox

20 Sep - 10:46 am

Bonjour à tous, j'ai créé un nouveau topic sur le forum concernant un problème que je rencontre sur plusieurs challenges, comme il n'est plus très actif, que j'aimerais pouvoir avancer sur ces challenges et que ce chat a une meilleure visibilité, je poste ce message ici en espérant qu'une âme charitable puisse m'aider en répondant à mon message sur le forum :)

3 Sep - 9:39 am

Ah ok je n'avais pas bien compris ton message original. Très bien, ce que tu peux faire c'est poster un message sur le forum avec le lien de téléchargement et les explications. Merci pour ta contribution !

1 Sep - 5:52 pm

Bonjour bonjour, je l'ai créé en Pharo, une implémentation récente du langage smalltalk.

31 Aug - 2:43 pm

Bonjour PharoGuy, re-bienvenue à toi ! Tu as créé cet objet en quel langage ?

30 Aug - 8:23 pm

Bonjour tout le monde ! je redécouvre ce site avec Pharo ! J'ai créé un objet qui gère la récupération et l'envoi des variables, ça pourrait intéresser ?

24 Jul - 5:30 pm

Ça devrait être à nouveau opérationnel, définitivement cette fois ci.

19 Jul - 8:42 pm

A nouveau ? On regarde ça !

16 Jul - 5:26 pm

Bonjour à tous :) Je viens d'essayer de valider le challenge "Wav ? (6)", et j'ai l'impression que la page "validation.php" est de nouveau en carafe.

15 Jul - 8:43 pm

Cool !! Merci beaucoup !!

9 Jul - 11:20 pm

Hello, je regarde ça dès que je peux, probablement demain

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.