Principe:
Analyser (et brute-forcer intelligemment) un logigramme pour retrouver les entrées correspondant à une sortie donnée
Infos (cf menu latéral):
🚩 Flaggué! +146 points gagnés —
💾 Téléchargez les fichiers du challenge
FCSC{7364529468137835333}
Le challenge

Suivre les fils


NON
(le rond), ET
(la borne) et XOR
(la fleche arrondie)Formule

y(i+1)=x(i+1) XOR (NON x(i) ET x(i-1))

x(i-1) x(i) x(i+1)
donne la valeur de y(i+1)
Analyse
On ne peut pas force-bruter bêtement le diagramme (trop de combinaisons),
en tous cas, pas sur ma machine et pas en PHP. On va faire plus subtile
En pratique, pour chaque i de 0..62, x(i)
va avoir une influence uniquement sur y(i) y(i+1) y(i+2)
Donc, pour chaque i on va regarder si x(i) peut être true
et s'il peut être false en fonction des sorties. On éliminera des possibilités,
et en réitérant, on finira par n'en avoir qu'une

x(i)
peuvent être TRUE
ou FALSE
, puis pour chacun, on regarde si la valeur TRUE/FALSE
est possible
Ici, après une itération, on voir que le x(62)
peut être true
et qu'il peut aussi être false
(donc, on ne sait rien), mais x(60)
peut uniquement être TRUE
: on a donc avancé en récupérant une information

Comme on nous fournit un exemple (y=133…37
), on prendra soin de d'abord vérifier l'algorithme avec l'exemple donné: c'est la première ligne de l'écran de gauche. Ensuite, on relancera l'algo avec la sortie Y
du challenge, on récupère X
et on le soumet au site

Flag: FCSC{7364529468137835333}