Softwarescanner

Softwarescanner sind Programme die Eingabezeichen analysieren oder für sicherheitsrelevante Aufgaben eingesetzt werden, mit denen die Cyber Security erhöht und Schwachstellen in Netzwerken erkannt und beseitigt werden. Als Sicherheitstool für die Systemadministration können Softwarescanner wichtige Informationen über die betriebenen Dienste, User-IDs, Zugriffsberechtigungen und Authentifizierungen liefern. Virenscanner hingegen untersuchen Dateien nach Viren.


Scanner im Kontext mit Compilern

Der Scanner bildet die erste Phase des Compilers. Seine Hauptaufgabe besteht darin, Eingabezeichen zu lesen und als Ausgabe eine Folge von Symbolen zu erzeugen, die der dann folgende Parser syntaktisch analysiert.

Interaktion des Scanners mit 
   dem Parser

Interaktion des Scanners mit dem Parser

Diese wechselseitige Beziehung wird üblicherweise so implementiert, dass der Scanner als Unter- oder Coroutine des Parsers agiert. Nach Erhalt eines vom Parser gegebenen Kommandos "übergib das nächste Symbol", liest der Scanner solange Eingabezeichen, bis er das nächste Symbol erkannt hat.

Der Scanner ist derjenige Teil des Compilers, der den Quelltext liest. Es ist deswegen naheliegend, ihm weitere Aufgaben mit Blick auf die Benutzerschnittstelle zu übertragen. Eine dieser Aufgaben ist die Reinigung des Quellprogramms von Kommentaren und Leerzeichen, Tabulatoren und Zeilenwechseln. Eine andere Aufgabe besteht darin, den Fehlermeldungen des Compilers die entsprechenden Positionen im Quellprogramm zuzuordnen. Beispielsweise könnte sich der Scanner die Anzahl der bisherigen Zeilenwechsel merken, um eine Fehlermeldung einer Zeilennummer zuzuordnen. In einigen Compilern muss der Scanner eine Kopie des Quellprogramms mit eingestreuten Fehlermeldungen erstellen. Wenn die Quellsprache Funktionen eines Macro-Prozessors anbietet, können diese Funktionen ebenfalls als Teil der lexikalischen Analyse implementiert werden.

Manchmal werden Scanner in zwei aufeinanderfolgende Phasen aufgeteilt. Die erste Phase übernimmt das reine Lesen des Eingabestroms, die zweite die eigentliche lexikalische Analyse. Die Aufgaben der ersten Phase sind recht einfach, während die komplexeren Aufgaben Teil der zweiten Phase sind. Man kann sich etwa vorstellen, dass in einem Compiler Leerzeichen in der Eingabe von der Lese-Phase entfernt werden.

Informationen zum Artikel
Deutsch: Softwarescanner
Englisch: software scanner
Veröffentlicht: 08.04.2012
Wörter: 308
Tags: #Gefahrenpotential #Anwendungsprogramme
Links: Compiler, Coroutine, CS (cyber security), Datei, Dienst