Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 27 12311 ... LetzteLetzte
Ergebnis 1 bis 10 von 262

Thema: Wireshark Plugin für S7-Protokoll

  1. #1
    Registriert seit
    29.03.2004
    Beiträge
    5.086
    Danke
    128
    Erhielt 1.481 Danke für 1.090 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe mal etwas Zeit gefunden um ein Wireshark Plugin für das S7-Protokoll zu schreiben.

    Die entsprechende s7comm.dll befindet sich im Anhang.
    Diese muss ich das plugin Verzeichnis von Wireshark kopiert werden. Im Normalfall ist das
    C:\Programme\Wireshark\plugins\
    und dann die Versionsnummer (aktuell ist 1.0.8).

    Über eine Heuristik versucht das Plugin in den Nutzdaten des überlagerten COTP (ISO 8073) Protokolls ein S7-Telegramm zu erkennen.

    Das Telegramm wird dann in Header, Parameter und Data-Teil zerlegt.

    Der Datenaustausch über Read-Request/Response und Write-Request/Response wird noch weiter bis hin zu den
    SPS-Adressen aufgeschlüsselt. Die SPS-Adressen werden wie ein ANY-Pointer in Step 7 dargestellt (z.B. DB5.DBX0.0 BYTE 5).

    Dies ist die Kommunikation die üblicherweise zwischen Visualisierung und der SPS
    abläuft. Diese wird mehr oder weniger komplett aufgeschlüsselt.

    Ein paar Teile konnte ich noch nicht entschlüsseln, wie:
    - Header: Bytes 3,4 Reserve?
    - Parameter bei "Negotioate PDU Length", Bytes 2-6


    Eine große Frage stellt sich mir bei User-Data PDUs.
    Da es hier eine schier unendliche Anzahl an Telegrammen zu geben scheint, habe ich es erstmal dabei
    belassen nur in Header/Paramater/Data aufzusplitten.
    Man könnte die bekannten Teile sicher noch in Details auflösen, aber ich weiß nicht ob das wirklich Sinn macht.
    Oder es gibt dort eine Struktur die ich noch nicht erkannt habe.


    Wenn jemand die Quellen haben möchte bitte PN an mich.
    Mit diesen sollte sich das Plugin auch für Wireshark unter Linux erstellen lassen (kann ich leider nicht testen, ein entsprechendes makefile
    ist aber enthalten).

    Gruß
    Thomas
    Geändert von Thomas_v2.1 (02.10.2010 um 01:16 Uhr)
    Zitieren Zitieren Wireshark Plugin für S7-Protokoll  

  2. Folgende 11 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    bergfex66 (04.01.2016),centipede (15.06.2009),DeltaMikeAir (26.10.2016),gravieren (02.10.2010),Jobene (20.11.2013),jondownloads (23.05.2011),Pipboy (04.11.2012),QMark (26.06.2014),squonk (15.06.2009),Tuffi (17.09.2014)

  3. #2
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.086
    Danke
    128
    Erhielt 1.481 Danke für 1.090 Beiträge

    Standard

    Hüst, ich komm mit meinen VMs noch durcheinander. Im Anhang die letzte Version.
    Geändert von Thomas_v2.1 (02.10.2010 um 01:16 Uhr)

  4. Folgende 2 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Rainer Hönle (15.06.2009)

  5. #3
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    Hi,

    hab mir das mal heruntergeladen und in den Ordner C:\Programme\Wireshark\plugins\1.0.8\ kopiert.

    Nach dem Starten von Wireshark bekomme ich immer die Meldung:
    Code:
    Could'nt load module C:\Programme\Wireshark\plugins\1.0.8\s7comm.dll: Das angegebene Modul wurde nicht gefunden.
    Muss ich da noch irgendwo was einstellen?

  6. #4
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.086
    Danke
    128
    Erhielt 1.481 Danke für 1.090 Beiträge

    Standard

    Zitat Zitat von Human Beitrag anzeigen
    Hi,

    hab mir das mal heruntergeladen und in den Ordner C:\Programme\Wireshark\plugins\1.0.8\ kopiert.

    Nach dem Starten von Wireshark bekomme ich immer die Meldung:
    Code:
    Could'nt load module C:\Programme\Wireshark\plugins\1.0.8\s7comm.dll: Das angegebene Modul wurde nicht gefunden.
    Muss ich da noch irgendwo was einstellen?
    Ja, leider

    Das Problem ist, dass das offizielle Wireshark Release mit VC6 erstellt wurde, ich die dll aber mit VC2008 erstellt habe. Auf meinen Testrechnern mit Windows 2000 funktionierte das klaglos, auf einem XP-Rechner hatte ich aber die gleiche Meldung.

    Lösung:
    - Es muss das Redistributable Package von Microsoft installiert werden.
    http://www.microsoft.com/downloads/d...displaylang=en
    In der angehängten s7comm.dll habe ich diese Manifest Informationen integriert.

    Damit funktioniert es.

    Vielleicht lässt sich noch jemand mit VC6 auftreiben der die dll damit erstellt.

    Dll-Hell sozusagen....
    Geändert von Thomas_v2.1 (02.10.2010 um 01:16 Uhr)

  7. Folgende 2 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Human (15.06.2009),Zottel (16.06.2009)

  8. #5
    Registriert seit
    19.06.2003
    Beiträge
    2.197
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Ich probiere es gerade mal aus.
    Hinter den Daten erscheint folgende Fehlermeldung:
    [Dissector bug, protocol S7COMM: proto.c:1378: failed assertion "hfinfo->type == FT_BYTES"]
    Mein Wireshark ist möglicherweise etwas alt: Version 0.99.6a (SVN Rev 22276)

  9. #6
    Registriert seit
    19.06.2003
    Beiträge
    2.197
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Und weiter:
    Ich lasse 5 "Items" lesen. (Libnodave-Benchmark Teil 3).
    Es erscheint richtig unter Parameter:
    Funtion read (4)
    Item count: 5
    Danach wird aber nur das 1. Item aufgeführt.
    In diesem werden wiederum 6 Bytes Daten aufgeführt (richtig), aber nur die ersten beiden Bytes werden im Hex-Dump markiert.

  10. #7
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.086
    Danke
    128
    Erhielt 1.481 Danke für 1.090 Beiträge

    Standard

    Zitat Zitat von Zottel Beitrag anzeigen
    Und weiter:
    Ich lasse 5 "Items" lesen. (Libnodave-Benchmark Teil 3).
    Es erscheint richtig unter Parameter:
    Funtion read (4)
    Item count: 5
    Danach wird aber nur das 1. Item aufgeführt.
    In diesem werden wiederum 6 Bytes Daten aufgeführt (richtig), aber nur die ersten beiden Bytes werden im Hex-Dump markiert.
    Hallo,
    meinst du mit Benchmark "testISO_TCP.exe -b"?
    Das habe ich bei mir mal durchlaufen lassen (übrigens gut zum testen, habe ich garnicht dran gedacht) und bei mir sieht soweit alles OK aus. Ab Sequenz-Nr. 202 fängt der Test mit 5 Items an, und da passt es eigentlich beim Request und beim Response.

    Gibts es Siemens intern einen anderen Namen für meine "Items"?
    Geändert von Thomas_v2.1 (16.06.2009 um 11:08 Uhr) Grund: Read -> Request

  11. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Manni01 (17.06.2009)

  12. #8
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.645
    Danke
    208
    Erhielt 409 Danke für 328 Beiträge

    Standard

    Ist es nicht möglich das Plugin direkt an die Wireshark entwickler zu schicken, so ist's beim nächsten Release gleich dabei??
    ---------------------------------------------
    Jochen Kühner
    http://jfk-solutions.de/ - Softwareentwicklung, Programmierung, ...
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    IPhoneS7 - Inbetriebnahme Tool fürs IPhone (VarTab, Baustein-, PLC-Status)
    Zitieren Zitieren an Wireshark schicken??  

  13. #9
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.086
    Danke
    128
    Erhielt 1.481 Danke für 1.090 Beiträge

    Standard

    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    Ist es nicht möglich das Plugin direkt an die Wireshark entwickler zu schicken, so ist's beim nächsten Release gleich dabei??
    Da die S7-Kommunikation ja kein offenes/dokumentiertes Protokoll ist glaube ich nicht dass die sich da was von annehmen.
    In einem offiziellen Wireshark-Release sollten mMn nur wirklich 100% vollständige Protokolle vorhanden sein.
    Aber vielleicht lässt sich die Vollständigkeit bei diesem Plugin ja noch etwas erhöhen.

  14. #10
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.086
    Danke
    128
    Erhielt 1.481 Danke für 1.090 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So, ich konnte doch noch einen Visual C++ 6.0 Compilier auftreiben.
    Jetzt lässt sich das Plugin auch ohne das Redistributable Package in der aktuellen Wireshark Version verwenden.
    Also einfach die s7comm.dll in das plugin Verzeichnis kopieren und lüppt

    Zusätzlich habe ich die Userdata-Telegramme etwas weiter aufgeschlüsselt. Bei SZL Anfragen werden die angefragte ID und der Index angezeigt. Zumindest beim Request - ein Response hat eine etwas andere Struktur.

    Bei der Darstellung der Daten in den Userdata war auch noch ein Fehler wie Zottel schon schrieb.

    So ein paar "unbekannte" Größen sind jedoch noch vorhanden, vielleicht lassen sich diese mit der Zeit noch auflösen.

    Im Anhang einmal die reine dll und die Quellen (src) zum Plugin selberbacken.
    Geändert von Thomas_v2.1 (02.10.2010 um 01:16 Uhr)

Ähnliche Themen

  1. Wireshark Auszüge von Onlinebeobachtungen
    Von Jochen Kühner im Forum Simatic
    Antworten: 40
    Letzter Beitrag: 25.01.2011, 15:44
  2. Wireshark 1.2.0 ohne AMS.ADS?
    Von Neals im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 08.07.2009, 21:29
  3. Wireshark als Sender
    Von Tapio Bearking im Forum PC- und Netzwerktechnik
    Antworten: 2
    Letzter Beitrag: 08.07.2008, 11:47
  4. AK- Protokoll
    Von borromeus im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 27.02.2007, 17:30
  5. S7-Protokoll 2
    Von Zapot im Forum Feldbusse
    Antworten: 1
    Letzter Beitrag: 21.08.2006, 09:37

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •