Déchiffrage d'un code python

salwaalem -  
 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

  1. jee pee Messages postés 9439 Date d'inscription   Statut Modérateur Dernière intervention   9 977
     
    0
    1. salwaalem
       
      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')
      0
      1. jee pee Messages postés 9439 Date d'inscription   Statut Modérateur Dernière intervention   9 977 > 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.
        0
    2. salwaalem
       
      Ah Ok. Je comprend mieux.
      Merci beaucoup
      0