   CACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUScactus
   U                                                                      U
   S                              GUARDIAN                                S
   E                              ********                                E
   R                   Übersetzt 10/88 von C.A.C.T.U.S.                   R
   S                                                                      S
   cactusCACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUS



************************************************************************
*                            GUARDIAN v1.1                             *
*                        Antivirus Bootstrap                           *
*  Copyright 1988 Leonardo Fei, via A. Fava 6, 20125 Milano, Italien   *
*                                                                      *
*  WICHTIGER HINWEIS: Dieses Programm darf gratis kopiert und weiter-  *
*  gegeben werden. Es handelt sich NICHT um Public Domain. Alle Rechte *
*  bleiben beim Autor. Das Programm darf an jedermann weitergegeben,   *
*  aber nicht verkauft werden. Das Programm darf NICHT auf irgendeiner *
*  italienischen "Zeitschrift mit Diskette" veröffentlicht werden;     *
*  auch nicht als "Sample" oder "Demo".                                *
*                                                                      *
************************************************************************

Bei Guardian handelt es sich um ein Antivirus-Programm, das ich in einer
Art Programmierwahn in wenigen Tagen schrieb, nachdem ich entdeckt hatte,
daß ein neuer Virus die meisten meiner Disketten infiziert hatte.

Guardian nimmt keinen einzigen Taktzyklus in Anspruch, weil er nur während
des Bootvorganges aufgerufen wird.

Während andere Viruskiller auf einen ebstimmten Virus geeicht sind, erkennt
Guardian jeden Nicht-Standard-Bootblock. Standard-Bootblöcke werden mit
dem CLI-Befehl INSTALL erzeugt bzw. beim Formatieren einer Diskette.
Dieser Standard-Bootblock ist in Guardian enthalten.

Guardian selbst installiert sich anstelle des Bootstrap-Moduls und
vergleicht den Inhalt jedes Bootblockes mit dem gespeicherten Standard,
und zwar BEVOR er ausgeführt wird.


"WARNING !!! - THIS IS NOT A STANDARD BOOTBLOCK !!!"
----------------------------------------------------

Wenn der Bootblock auch nur ein einziges Byte vom Standard abweicht, wird
ein Alarm durchgeführt, der den benutzer vor möglichen Viren im Bootblock
warnt, während gleichzeitig der Inhalt des Bootblockes im Ascii-Format
dargestellt wird. Viren könne z.B. durch Texte wie 'SCA!SCA!SCA!' oder
'VIRUS BY BYTE BANDIT' erkannt werden, aber denk dran, daß es ebenfalls
anonyme Viren gibt, die keine einzige Nachricht beinhalten.
Sei also in jedme Falle vorsichtig, auch wenn Du keinen Text entdeckst.

Der Benutzer kann sich nun entscheiden, ob der verdächtige Bootblock oder
der Standard-Bootblock des GUARDIAN ausgeführt wird. Es ist möglich, den
verdächtigen Bootblock auszuführen, weil es auch Bootblöcke ohne Viren
gibt, die nicht das Standard-Format aufweisen. Dabei handelt es sich um
Boot-Intros, Schnellader, Boot-Menüs und anderes, die Du auf käuflichen
und privaten Disketten finden kannst.Um diese Disketten benutzen zu können,
muß der Bootblock ausführbar sein.

Entscheidest Du dich, den geladenen Bootblock ausführen zu lassen, färbt
sich der Bildschirm rot, um Dich an dein gefährliches Vorhaben zu erinnern.
In diesem Falle fertigt sich Guardian zunöchst eine Kopie der ExecBase
an (** Der Programmteil, den Viren verändern -Der Übersetzer- **) und
vergleicht diese Kopie mit der ExecBase im Speicher, nachdem der Bootblock
ausgeführt wurde.

"WARNING !!! - ExecBase was altered by bootcode !!!"
----------------------------------------------------

Wenn sich die neue ExecBase auch nur um ein einziges Byte von der alten
unterscheidet, dann wird der oben dargestellte Alarm erzeugt, und Du kannst
dich entscheiden, ob die alte ExecBase wiederhergestellt werden soll.
Bei Erscheinen dieser Alarmmeldung hat sich möglicherweise der ByteBandit-
Virus bei Dir eingefunden. Das Wiederherstellen der alten ExecBase
löscht den vom Virus eingesetzten Vektor in der "Vertical blanking"
Routine, der für das Bildschirmabdunkeln zuständig ist, und ebenfalls
seinen Eintrag in der Liste der Resetfesten Programmodule. Auf diese Art
kann der Virus nicht mehr den Computer blockieren und überlebt zudem den
nächsten RESET nicht. Ein Problem gibt es allerdings trotzdem. Das hängt
damit zusammen, daß der Virus, sobald er aktiviert wurde, die Offset-
Tabelle der trackdisk.device-Library dergestalt verändert hat, daß bei
jedem Zugriff auf eine neue Diskette der Virus im Speicher aufgerufen
wird. Wenn Du also Deine Disketten in eines deiner Laufwerke einlegst,
werden sie schon dadurch automatisch infiziert (sofern der Schreibschutz
desaktiviert ist). Das ganze kannst Du aber leicht umgehen, indem Du
einfach einen RESET durchführst! Bei einem RESET wird die Offset-Tabelle
automatisch neu erstellt und der Virus, da er nicht mehr resetfest ist,
einfach rausgeschmissen.

Auch beim "alten" SCA-Virus erscheint diese Alarmmeldung, weil dieser Virus
den CoolCapture-Vektor verbiegt, der ebenfalls in der ExecBase liegt. Bei
diesem Virus reicht es schon aus, einfach die alte ExecBase wiederherzu-
stellen, und der Virus reitet zu seinen Ahnen.

Falls Du trotz Warnung die alte ExecBase nicht wiederherstellen läßt,
wird unter Umständen GUARDIAN aus der Liste der resetfesten Programme
entfernt, und die Folgen hast Du dir dann selbst zuzuschreiben (ByteBandit
macht das hundertprozentig, während der SCA-Virus lieber nachgibt).


"WARNING !!! - THIS IS NOT A STANDARD BOOTBLOCK !!!"
----------------------------------------------------

Entscheidest Du dich gegen das Ausführen des Diskettenbootblockes, färbt
sich der Bildschirm weiß und Du erhältst die Möglichkeit, die Diskette
mit dem INSTALL-Befehl zu behandeln, um ihr die Viren auszutreiben.


"Shall I replace IT with a STANDARD BOOTBLOCK ?"
------------------------------------------------

Enthält der Bootblock einen Virus, dann solltest Du hier schleunigst
installieren, um schlimmeres zu verhindern.

************************************************************************
 WARNUNG! Installiere nur dann die Diskette, wenn Du eine Sicherheits-
 kopie davon besitzt oder wenn Du dir absolut sicher bist, daß es sich
 um einen Virus handelt! Einige kommerzielle Programme besitzen eben-
 falls ungewöhnliche Bootblöcke (Schnellader, Intros etc.), und diese
 würden überschrieben mit dem INSTALL-Befehl, so daß das Programm auf
 dieser Diskette möglicherweise zerstört würde!
************************************************************************


"Disk is write-protected.  Shall I retry ?"
-------------------------------------------

Ist die Diskette schreibgeschötzt, fragt der GUARDIAN noch einmal nach.


Laden und Benutzen des Guardian
-------------------------------

Hier wäre es das beste, diese SAUBERE (=virenfreie) Diskette direkt nach
dem Einschalten bzw. beim Amiga 1000 nach dem Kickstart-Booten einzulegen,
bevor Du irgend eine andere Diskette lädst. (** Sämtliche CACTUS-Disketten
enthalten im Bootblock eine Meldung, um sicherzustellen, daß sich kein
Virus eingenistet hat. ENTHÄLT DIESE CACTUS-DISKETTE KEIN BILD IM BOOT-
BLOCK, DAS CA. 5 SEKUNDEN NACH BOOTEN DER DISKETTE ERSCHEINT, DANN
BITTE SOFORT INSTALLIEREN, DA VERDACHT AUF VIRUS!!! -Der Übersetzer- **)
Wenn Du den Schreibschutz dieser Diskette nie entfernst, dann kannst Du
sicher sein, daß sich kein Virus daraufkopieren kann, da es absolut
unmöglich ist, den Schreibschutz softwaremäßig zu umgehen. Letzten Endes
entscheidet nämlich einzig und allein die Hardware des Diskettenlauf-
werkes, ob die Diskette beschrieben werden kann oder nicht. Man kann den
Amiga zwar derart täuschen, daß er glaubt, die Diskette sei nicht schreib-
geschützt, und Schreiboperationen fehlerfrei annimmt. Da beißt er aber
beim Floppylaufwerk auf Granit, das sich nicht täuschen läßt und alle
Schreiboperationen abweist.
Bist Du nicht sicher, ob Deine anderen Bootdisketten wie z.B. die Workbench
virenfrei sind, dann mußt Du den Computer für ca. 10 Sekunden ausschalten
und anschließend diese Diskette laden.
Nach Entfernen aller Viren von Deinen Disketten könntest Du den Guardian
z.B. in deren C-Verzeichnisse kopieren und jeweils von der Startup-Sequence
aufrufen lassen.

Die etwas unübliche Art des Programmstarts empfiehlt es, Guardian direkt
als allererstes in der Startup-Sequence aufzurufen. Bei seinem Aufruf
prüft Guardian nämlich zunächst, ob er sich schon im Speicher befindet.
Ist dies nicht der Fall, installiert sich Guardian resetfest im Speicher
und führt einen RESET durch, womit die Liste der resetfesten Programme
neu aufgebaut wird.

Ab diesem Zeitpunkt brauchst Du den Guardian nicht mehr aufzurufen, weil
er sich auch bei Systemabstürzen und RESET (CTRL-A-A) im Speicher hält.
Guradian überlebt alles außer einem Kaltstart (Ausschalten und wieder
Einschalten) und es wird auch zerstört, wenn ein falsch funktionierendes
Programm den Speicherbereich überschreibt, in dem sich Guardian befindet.
Ist Guardian im Speicher, dann erscheint die aktuelle Guardian-Version
im Einschaltbild (Hand mit Workbench-Disk).

Wurde Guardian aufgerufen, obwohl er sich noch im Speicher befindet, gibt
er eine kurze Meldung aus und verabschiedet sich wieder (der Guardian im
Speicher bleibt erhalten).

Guardian installiert sich auf "saubere" Art und Weise, so daß wichtige
Vektoren wie z.B. KickTagPtr nicht verändert werden. Deshalb könnte man ihn
im Grunde jederzeit aufrufen. Ich schklage dennoch vor, ihn direkt nach dem
Einschalten des Computers zu laden, bevor irgendein Virus auch nur die
kleinste Chance erhält, sich in Deinem Computer festzusetzen.

Mit der Guardian-Version 1.1r hat ein Virus kaum noch eine Chance. Dieses
Programm wird mit dem mitgelieferten Installationsprogramm "Creator"
direkt auf Deiner KICKSTART 1.2-Diskette installiert (ACHTUNG: NATÜRLICH
NUR EINE KOPIE DES KICKSTART VERWENDEN!!!). Dort nimmt es den Platz der
nie benutzten Debug()-Funktion ein. Solltest Du also einen Amiga 1000
besitzen, empfehle ich auf jeden Fall den Gebrauch von Guardian v1.1r
wegen zweier Besonderheiten:
1) Da sich Guardian schon im KICKSTART befindet, sparst Du dir den Aufruf.
2) Das Programm ist aktiv, BEVOR Du irgend eine Diskette bootest, also
   sehr sicher. Es gibt absolut keine Möglichkeit, von einem bereits
   aktiven Virus genarrt zu werden, also ist es völlig schnurz, welche
   Diskette Du als erste bootest. Guardian im KICKSTART kann nur dann
   überwunden werden, wenn Du einen infizierten Bootblock (z.B. BYTE BANDIT)
   ausführen lässt. Überleg es Dir also lieber dreimal, ob Du einen ver-
   dächtigen Bootblock ausführen lässt, vor allem, wenn Guardian Dir
   anzeigt, daß die ExecBase geändert wurde.
Der einzige Nachteil dieser Installation im KICKSTART besteht im Fehlen der
Debug()-Funktion, bei deren Aufruf der Computer nun einen RESET durchführt.

Im Guardian v1.1r habe ich den Platz, wo im Einschaltbild (Hand mit
Workbench-Diskette) der Text "AMIGA WORKBENCH" steht, durch das Guardian-
Label ersetzt. Da ich sowieso kaum eine reguläre Workbench boote, sehe
ich das relativ gelassen.

Die Guardian-Version 1.1 arbeitet mit A500/1000/2000 zusammen (Version
1.1r funktioniert nur mit A1000) in Verbindung mit KICKSTART 1.2 (v33.180).


*** 14. Juli 1988; Änderungen an dieser Anleitung
-------------------------------------------------

An dieser Stelle bat ich früher immer um eine milde Gabe. Die hier vorlie-
gende Programmversion ist dagegen völlig gratis. Wenn Du die Weiterent-
wicklung dieses Programmes unterstützen möchtest, dann wird es Dich sicher
interessieren, daß die Versionen 1.2 und 1.2r (nicht mehr gratis!) schon
fertiggestellt und beim Autor oder bei der Firma Transactor (Großbritannien)
sowie in Kürze auch von der Firma Transactor Kanada zum Preis einer
Public Domain-Diskette erhältlich sind. Das heißt also, 8.000 Lire,
3 englische Pfund oder 6 US-Dollars.

Guardian v1.2 wurde sowohl in Bezug auf Sicherheit als auch Flexibilität
stark verbessert.

Irgendwelche Vorschläge oder Kommentare sind stets willkommen. Danke!
Thanks!


Leonardo Fei
via A. Fava 6
20125 Milano
Italy

BIX: LFEI

