Wie verpacke ich Befehle, um sie an ein Modem zu senden?
Verfasst: Mittwoch 1. Februar 2017, 13:49
Hallo Forum!
Ich arbeite gerade an an einem kleinen "Reverse Engineering"-Projekt, wo ich die Kommunikation zwischen Steuerungs-PC und Modem entschlüsseln möchte. Die Kommunikation erfolgt über eine Serielle Schnittstelle. Mein Ansatz ist einfach einzelne Befehle auszuführen und abzuhören, was hin- und hergeschickt wird. Dies hat mit dem Modul PySerial so weit geklappt und ich habe jeweils bytestrings aus Hexadezimalen Code, gemischt mit ASCII-Zeichen erhalten, wie zum Beispiel
Nun versuche ich mit meinem eigenen PC die Steuerungssoftware zu imitieren. Beispielbefehle, die ich testen möchte, habe ich bereits vorbereitet. Wie das geht habe ich auch geklärt, nämlich mit serial.write von PySerial. Meine Frage ist nun:
In welchem Format kann das Modem mich verstehen?
Reicht es, wenn ich die ASCII-Zeichen im oben genannten bytestring in Hexadezimal konvertiere (sodass alles gleich codiert ist) und losschicke? Oder funktioniert nur Binärcode?
In beiden Fällen: wäre das dann als bytestring, string oder integer?
Und wenn die Antwort vom Modem abhängen sollte: wie finde das am besten heraus? In der Anleitung steht so etwas natürlich nicht.
Es wäre super, wenn mir jemand einen Tipp geben könnte. Vielen Dank im Voraus!
Tobi
Ich arbeite gerade an an einem kleinen "Reverse Engineering"-Projekt, wo ich die Kommunikation zwischen Steuerungs-PC und Modem entschlüsseln möchte. Die Kommunikation erfolgt über eine Serielle Schnittstelle. Mein Ansatz ist einfach einzelne Befehle auszuführen und abzuhören, was hin- und hergeschickt wird. Dies hat mit dem Modul PySerial so weit geklappt und ich habe jeweils bytestrings aus Hexadezimalen Code, gemischt mit ASCII-Zeichen erhalten, wie zum Beispiel
Code: Alles auswählen
b'\x1d\x1d\x11\xf2\x1dQ\xfa\x1d0\xff\x1d0\xf0}\x10\xf0=p\xe5=Q\xe5=Q\xe5=0\xe5!'In welchem Format kann das Modem mich verstehen?
Reicht es, wenn ich die ASCII-Zeichen im oben genannten bytestring in Hexadezimal konvertiere (sodass alles gleich codiert ist) und losschicke? Oder funktioniert nur Binärcode?
In beiden Fällen: wäre das dann als bytestring, string oder integer?
Und wenn die Antwort vom Modem abhängen sollte: wie finde das am besten heraus? In der Anleitung steht so etwas natürlich nicht.
Es wäre super, wenn mir jemand einen Tipp geben könnte. Vielen Dank im Voraus!
Tobi