-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsolve.py
32 lines (26 loc) · 965 Bytes
/
solve.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from pwn import *
conn = remote('challenges.france-cybersecurity-challenge.fr', 2051)
# Récupérer la longueur du tableau
conn.recvuntil('>>> ')
conn.sendline('longueur')
longueur = int(conn.recvline().decode().strip())
# Boucle pour trier le tableau
tri_effectue = False
while not tri_effectue:
tri_effectue = True
for i in range(longueur-1):
conn.recvuntil('>>> ')
# Comparer les éléments i et i+1
conn.sendline(f'comparer {i} {i+1}')
res = int(conn.recvline().decode().strip())
if res == 0: # Si i > i+1
# Echanger les éléments i et i+1
conn.recvuntil('>>> ')
conn.sendline(f'echanger {i} {i+1}')
conn.recvuntil('>>> ')
tri_effectue = False # Un échange a été effectué, donc on doit continuer de trier
# Vérifier si le tableau est trié
conn.recvuntil('>>> ')
conn.sendline('verifier')
flag = conn.recvline().decode().strip()
print(flag)