Übersetzung der Wireshark- (Ethereal-) Plugins unter Microsoft-Windows


Vorbemerkung

Da Wireshark (Ethereal) ursprünglich aus der UNIX (Linux-) Welt stammt, ist die Übersetzung der Plugins unter Microsoft-Windows nicht ganz einfach, denn es werden einige typische UNIX-(Linux-) Werkzeuge vorausgesetzt. Man benötigt auf jeden Fall den Wireshark-Quelltext von http://www.wireshark.org, denn die Übersetzung erfordert einerseits einige Wireshark-Header-Files. Vor allem aber wird die Bibliothek libwireshark.lib benötigt, die es nicht zum Download gibt, die aber als "Abfallprodukt" der Wireshark-Übersetzung entsteht.

Es lohnt sich auf jeden Fall, die Datei README.win32 zu lesen. Dort ist der Übersetzungsablauf beschrieben. Leider steht dort nicht alles. Deshalb seien noch folgende Hinweise gegeben:

Achtung! Der Hinweis, dass die Übersetzung nur mit VisualStudio - V6.0 gelingt, ist sehr ernst zu nehmen. Versuche mit VisualStudio - V7.x/2003 sind sinnlos!

Sollte man VisualStudio - V6.0 ohnehin neu installieren, so sollte man die am Schluss der Installation gestellte Frage, ob man VisualStudio - V6.0 auf der Kommandozeile benutzen will, unbdingt mit "Ja!", beantworten. Hat man das vergessen, so ist "guter Rat teuer"! Eventuell hilft es, im Konsolenfenster das Skript C:\Programme\Microsoft Visual Studio\vc98\Bin\vcvars32.bat zu starten.

Was im README.win32 nicht erwähnt wird ist, dass eine Reihe von Programmen zu installieren sind, die typischerweise aus der UNIX- (Linux-) Welt stammen. Da ohnehin die Bourn Again Shell (bash.exe) benötigt wird, empfiehlt es sich, Cygwin zu installieren.

Weitere benötigte Programme werden in folgender Tabelle aufgeführt:

ProgrammBezug des ProgrammsBemerkungen
Perlhttp://stennie.org/camelpackInstalliert noch zusätzlich Dev-C++. Wer das nicht möchte und keine Scheu hat, sich zu registrieren der kann stattdessen ActivePerl probieren.
Bisonhttp://gnuwin32.sourceforge.net/packages/bison.htm
Flexhttp://gnuwin32.sourceforge.net/packages/flex.htm
Wgethttp://users.ugent.be/~bpuype/wget
Pythonhttp://www.python.org
bashAm besten die bash aus Cygwin verwenden
UnzipUnzip für Cygwin: http://mirrors.xmission.com/cygwin/release/unzipAchtung! Wer ein anderes unzip.exe-Programm verwendet, sollte es unbedingt vorher ausprobieren. Nicht jedes Unzip.exe im Netz funktioniert auch! Das Kommando unzip.exe <file>.zip muss funktionieren, sonst: Großer Ärger!

Nun sollte man im Cygwin-Fenster den PATH so erweiteren, dass alle in obiger Tabelle aufgeführten exe-Files gefunden werden.

Achtung! Man muss testen, ob man tatsächlich das "nmake" aus dem Visual Studio verwendet wird, denn im Pearl - Verzeichnis gibt es auch noch ein "nmake":

      which nmake

Dann entpackt man die Wireshark-Quelle am besten direkt unter C:\:

      cd /cygdrive/c
      tar -xvzf wireshark-x.y.z.tar.gz
      cd wireshark-x.y.z

... und startet die eigentliche Konfiguration und Übersetzung:

      nmake -f Makefile.nmake distclean
      nmake -f Makefile.nmake setup
      nmake -f Makefile.nmake

Wenn die Übersetzung nicht ganz gelingt, so muss man diese nicht unbedingt zum Erfolg führen. Wichtig ist nur, dass eine Bibliothek wireshark-x.y.z/epan/libwireshark.lib entstanden ist.

Ist das geglückt, so kann man sich nun an die Übersetzung der Plugins wagen. Man ent-zip-t evisionplugin-x.y.z.zip am besten auch im Laufwerk C:\:

      cd /cygdrive/c
      unzip evisionplugin-x.y.z.zip
      cd evisionplugin-x.y.z

... und editiert die Dateie makefile.nmake. Man passt in den ersten beiden Zeilen den Pfad zur Wiresharkquelle (C:\wireshark-0.99.3a) an tatsächlichen Gegebenheiten an. Dann gibt man das Kommando:

       nmake -f makefile.nmake

Als Ergebnis entsteht das Plugin evisionplugin.dll.