C’est la petite entrée dans le monde modbus. On cherche le token, et le README nous indique que les registres 0 à 31 nous donne le token du joueur.
On choisit de le résoudre en python, et la doc de pyModbusTCP
indique une ouverture de la communication par ModbusClient()
et une lecture des registres par read_holding_registers()
. On n’oublie pas d’ouvrir le navigateur sur l’interface avec le token avant de couper la communication. Le code est donc :
#!/usr/bin/env python3
import os
# pip install pyModbusTCP
from pyModbusTCP.client import ModbusClient
c = ModbusClient(host="localhost", port=4502, unit_id=1, auto_open=True)
regs = c.read_holding_registers(0, 32)
if regs:
print(regs)
token = ''.join([ chr(r) for r in regs])
os.system(f'firefox http://localhost:8000/{token}')
input('Press any key to stop')
else:
print("read error")
Et le navigateur affiche:
Premier flag : FCSC{266350f412840c932b29bb095394d318c17c844f70c05f49c9998a8e614be531}