Déchiffrage d'un code python

Signaler
-
 salwaalem -
Bonjour,

Je voudrais comprendre ce que ce code fait s'il vous plait.
J'ai compris qu'il ouvre une connexion avec une machine en créant un socket dans lequel il va utiliser un ip et port puis il va envoyer un message à cette machine. Mais ce que je comprend pas. C'est le msg.

Ce message comprend une valeur qui sera décodée en hexa mais pourquoi ce message va faire qu'en l’envoyant à cette machine, cette dernière sera bloquée. Autrement dit ce message va créer un déni de service un DOS sur la machine.
   # socket setup
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((rhost, rport))
    msg = "00000000000a005a002800300000ff00".decode('hex')
    s.send(msg)
    s.close()

1 réponse

Messages postés
30128
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
24 novembre 2020
7 013
Merci de votre retour.

C'est de ce site que j'ai pris le code mais j'aurais voulu comprendre ce que fait que la machine se bloque quand on lui envoie le msg
msg = "00000000000a005a002800300000ff00".decode('hex')
Messages postés
30128
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
24 novembre 2020
7 013 > salwaalem
c'est écrit, et c'est un bug, corrigé, qui n'affecte que cette machine automate particulière

When a UMAS command is sent using function code 0x28, it is possible to make the device enter a non-recoverable fault state, causing a denial-of-service condition. This can be completed by specifying certain block numbers and providing a large value.

The known affected block numbers are 0x00 and 0x30-0x3f

In the non-recoverable fault state the CPU has entered an error mode where all remote communications have been stopped, process logic stops execution, and the device requires a physical power cycle to regain functionality.
Ah Ok. Je comprend mieux.
Merci beaucoup