From d51d91b9bb811f318b8a53f5d2cf3956139494e2 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sat, 10 Dec 2022 14:37:39 +0100 Subject: [PATCH] New name for regexp capturing groups --- content/files/challenge.md | 4 ++-- content/responses/mcq_justified.md | 2 +- content/responses/simple.md | 10 +++++----- content/responses/ucq.md | 4 ++-- content/responses/vector.md | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/content/files/challenge.md b/content/files/challenge.md index 81f8536..f4fb472 100644 --- a/content/files/challenge.md +++ b/content/files/challenge.md @@ -90,7 +90,7 @@ Voici un aperçu des propriétés disponibles : * `showlines = false` : (facultatif, par défaut : `false`) lorsque le drapeau est un tableau et que `showlines` est vrai, le nombre d'éléments du tableau sera donné au participant, sinon il devra déterminer lui-même le nombre d'éléments à trouver (pour l'instant cette option est limitée à un tableau de 9 éléments maximum, c'est normal si ça bug au delà, demandez-moi si vous avez besoin de plus) ; * `bonus_gain = 33` : (facultatif) donne des points supplémentaire si complété ; * `ordered = false` : (facultatif, par défaut : `false`) ignore l'ordre dans lequels les éléments du tableau sont passés ; - * `validator_regexp = "^(?:sudo +)?(.*)$"` : (facultatif) expression rationnelle dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ; + * `capture_regexp = "^(?:sudo +)?(.*)$"` : (facultatif) expression rationnelle dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ; * `casesensitive = true` : (facultatif, par défaut : `false`) prend en compte la casse de ce drapeau ; * `placeholder = "dd/mm/yyyy"` : (facultatif) chaîne de caractères initiale placée dans le champ du formulaire, idéale pour donner une indication de format ; * `help = "Complément"` : (facultatif) petit paragraphe placé sous le champ du formulaire, idéal pour donner une indication complémentaire ; @@ -103,7 +103,7 @@ Voici un aperçu des propriétés disponibles : + `value = true` (facultatif, par défaut `false`, sauf si `raw` est précisé) : valeur attendue pour ce choix, + `raw = "Justification"` (nécessaire pour un [QCM justifié]({{< relref "/responses/mcq_justified.md" >}})) : utilisez une chaîne de caractères (notez qu'il n'est pas possible de combiner des réponses vraies justifiées et non justifiées), + `help = "Flag correspondant"` : (facultatif) indication affichée dans le champ de texte des QCM justifiés, - + ... toutes les autres propriétés applicables à un flag simple peuvent être utilisées : `ordered`, `validator_regexp`, `casesensitive`, ... ; + + ... toutes les autres propriétés applicables à un flag simple peuvent être utilisées : `ordered`, `capture_regexp`, `casesensitive`, ... ; ## Dépendances entre flags diff --git a/content/responses/mcq_justified.md b/content/responses/mcq_justified.md index e9347a4..2677361 100644 --- a/content/responses/mcq_justified.md +++ b/content/responses/mcq_justified.md @@ -62,7 +62,7 @@ label raw : [drapeau]({{< relref "/responses/simple.md" >}}) ou [tableau de drapeaux]({{< relref "/responses/vector.md" >}}) exact à trouver ; -validator_regexp +capture_regexp : (facultatif) [expression rationnelle]({{< relref "/responses/simple.md#flag-modulable" >}}) dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ; casesensitive diff --git a/content/responses/simple.md b/content/responses/simple.md index 92820bd..e73d85b 100644 --- a/content/responses/simple.md +++ b/content/responses/simple.md @@ -67,7 +67,7 @@ Car il n'est pas possible d'avoir un hash qui valide à la fois `choux` et `pomme de terre`. {{% /notice %}} -On utilise l'attribut `validator_regexp` pour établir une expression rationnelle +On utilise l'attribut `capture_regexp` pour établir une expression rationnelle qui servira à sélectionner les parties significatives de la réponse. Par exemple : @@ -75,7 +75,7 @@ Par exemple : [[flag]] label = "Heure de l'exfiltration" raw = '11:22:33+02:00' -validator_regexp = "([0-9]{1,2}):([0-9]{1,2}):[0-9]{1,2}" +capture_regexp = "([0-9]{1,2}):([0-9]{1,2}):[0-9]{1,2}" ``` Ici, nous demandons l'heure de l'exfiltration, mais plusieurs journaux @@ -88,7 +88,7 @@ pour qu'il fasse l'effort de trouver la bonne valeur selon lui (il pourrait une valeur approximative). On garde toujours dans le `raw` la valeur complète attendue, telle que l'on -peut la recopier. Et l'on indique une `validator_regexp` qui sélectionnera la +peut la recopier. Et l'on indique une `capture_regexp` qui sélectionnera la ou les valeurs significatives, à la fois dans le `raw` et dans les réponses des participants. @@ -106,7 +106,7 @@ de rester vague, en utilisant les caractères joker. Par exemple : [[flag]] label = "Commande utilisée pour l'exfiltration" raw = 'apt-get search yolo' -validator_regexp = "^(?:sudo *)?(.*)$" +capture_regexp = "^(?:sudo *)?(.*)$" ``` Dans cet exemple `sudo` est facultatif, plutôt que de sélectionner `(apt-get @@ -124,7 +124,7 @@ label raw : drapeau exact à trouver ; sous [forme de tableau]({{< relref "/responses/vector.md" >}}), le participant n'aura pas connaissaance du nombre d'éléments ; -validator_regexp +capture_regexp : (facultatif) [expression rationnelle]({{< relref "/responses/simple.md#flag-modulable" >}}) dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ; sort\_validator\_regexp\_groups diff --git a/content/responses/ucq.md b/content/responses/ucq.md index a574412..3b0069c 100644 --- a/content/responses/ucq.md +++ b/content/responses/ucq.md @@ -24,7 +24,7 @@ raw choices_cost : (facultatif, par défaut 0) coût pour afficher les choix : avant l'affichage, se comporte comme un `flag` classique (si `choices_cost` = 0, les choix sont affichés directement) ; -validator_regexp +capture_regexp : (facultatif) expression rationnelle dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ; ordered @@ -58,7 +58,7 @@ value [[flag]] type = "ucq" label = "Type de malware" -validator_regexp = "^.*(dropper).*$" +capture_regexp = "^.*(dropper).*$" raw = "Il installe quelque chose à son tour ! Il s'agit d'un dropper." choices_cost = 25 diff --git a/content/responses/vector.md b/content/responses/vector.md index 4756995..68de212 100644 --- a/content/responses/vector.md +++ b/content/responses/vector.md @@ -37,7 +37,7 @@ label raw : tableau TOML de drapeaux exacts à trouver ; sous forme de tableau, le participant n'aura pas connaissaance du nombre d'éléments ; -validator_regexp +capture_regexp : (facultatif) [expression rationnelle]({{< relref "/responses/simple.md#flag-modulable" >}}) dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas) ; Attention, la regexp est appliquée seulement sur la représentation de la chaîne de caractères obtenue, pas sur chaque élément. showlines