Forum: PC-Programmierung LAN Datenverkehr abhören


von Jenny L. (jenny_lo)


Lesenswert?

Ich bin mir nicht sicher, ob das was ich vorhabe, auch möglich ist. 
Deshalb frage ich, bevor ich tagelang probiere und es ist prinzipiell 
nicht möglich. Also folgende Aufgabenstellung:

Ich habe in meinem Heimnetzwerk u.a. die Digitalzentrale meiner 
Modellbahn hängen. Dort ist eine feste IP eingestellt, so dass diese 
immer bekannt ist. Zum Steuern der Modellbahn habe ich eine 
entsprechende Software auf meinem PC laufen. Wenn das PC Programm 
gestartet wird, sucht es unter der hinterlegten IP die Zentrale und baut 
die notwendige Kommunikation auf. Das Protokoll der Zentrale liegt 
offen. Trotzdem weiß ich nicht, welche Abfragen die Software genau in 
welcher Reihenfolge sendet, um die Zentrale zu erkennen und die 
Kommunikation aufzubauen.

Gibt es irgendeine Möglichkeit, den Datenverkehr zwischen der Software 
und der Zentrale abzuhören?

Hintergrund ist, dass ich mit einem Raspi als Bedienpult einen separaten 
Anlagenteil bedienen möchte. Dort sind die Steuerkarten für die 
einzelnen Funktionen über I²C angebunden. Die Software auf dem Raspi 
soll aber auch Steuersignale der Steuersoftware auf dem PC empfangen 
können. Dazu muss der Raspi der Steuersoftware „vorgaukeln“, dass er 
eine Digitalzentrale ist.

von Tim F. (Gast)


Lesenswert?

Versuche es mal mit Wireshark. Damit kannst du alle ausgetauschten 
Pakete loggen. Daraus etwaige Protokollspezifikationen zu lesen kann.. 
nun ja.. zeitaufwändig werden.

von Max D. (max_d)


Lesenswert?

Also wenn das Protokoll offen und bekannt ist, dann tust du dich 100 mal 
leichter einfach einen Server anhand der specs aufzusetzen als wenn du 
das Mitschnitten irgendwie zusammen bastelst.

von lächler (Gast)


Lesenswert?

Wenn dein LAN nicht über einen Hub, sondern Switch oder Router läuft, 
bleibt fast nur die Möglichkeit den Raspberry selbst als "Abhörstation" 
zu nutzen.
Linux bringt dafür als Grundausstattung den tcpdump Befehl mit.

von Picer (Gast)


Lesenswert?

Wireshark kann auch die eigene Netzwerkkarte mitloggen. Also auf den 
gleichen Rechner laufen lassen wie die PC Bahn Software.

Ich habe für sowas noch einen alten 10Mbit Hub. Da kommen dann ja aus 
allen Ports die gleichen Telegramme und das ganze wird etwas ausgebremst 
:)

Bei besseren Switches kann man auch einen Port umschalten das er einen 
anderen Port spiegelt.

von Bernd K. (prof7bit)


Lesenswert?

Max D. schrieb:
> dann tust du dich 100 mal
> leichter einfach einen Server anhand der specs aufzusetzen als wenn du
> das Mitschnitten irgendwie zusammen bastelst.

Er sollte beides machen: Die Spec lesen (natürlich) und auch die 
Mitschnitte zuhilfe nehmen um sich das ganze "in echt" anzuschauen was 
beim Verständnis der Spec besonders bei Unklarheiten hilft. Auch beim 
Implementieren der eigenen Software hilft es dem Ding bei der Arbeit auf 
die Finger zu schauen um zu sehen wo man versehentlich vom Protokoll 
abweicht.

von Dengler (Gast)


Lesenswert?

lächler schrieb:
> Wenn dein LAN nicht über einen Hub, sondern Switch oder Router
> läuft,
> bleibt fast nur die Möglichkeit den Raspberry selbst als "Abhörstation"
> zu nutzen.
ARP-Spoofing wäre hier meine Idee (IPv4). Mit BackTrack Linux von 
Live-CD gestartet habe ich vor ein paar Jahren schnell Erfolge erzielt. 
Letztlich wird der Datenverkehr im geswitchten Netzwerk über die eigene 
NIC umgeleitet und man kann ihn z.B. mit WireShark (oder wie auch immer 
das gerade jetzt heisst) "abhören".

von Jenny L. (jenny_lo)


Lesenswert?

Also ich habe jetzt WireShark installiert und konnte auch schon den 
entsprechenden Datenverkehr herausfiltern. Jetzt muss ich nur noch den 
Inhalt "entschlüsseln", was vor allem ein Geduldsspiel sein wird. Da die 
Anzahl der Möglichkeiten aber nicht allzu groß ist, sehe ich kein 
unlösbares Problem.

Danke an Alle für die Hilfe.

von Bernd (Gast)


Lesenswert?

Man kann auch recht einfach für Wireshark ein eigenes Analyse-Plugin 
("Dissector") schreiben, entweder in C oder als Script (Lua). Mit den 
Scripten habe ich keine Erfahrung, aber die Implementierung in C sollte 
(zumindest unter Linux) für einen einigermaßen fitten Programmierer 
nicht mehr als einen Tag in Anspruch nehmen. Hängt aber natürlich auch 
davon ab, wie umfangreich das Protokoll ist.

Falls Du das öfter brauchst, könnte sich das also lohnen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.