home *** CD-ROM | disk | FTP | other *** search
-
-
- *****************************************************************
- * *
- * 'SetFunction' Manager © V 1.16 *
- * *
- * von Hans-Werner Schober *
- * *
- * 12 Jul. 1996 47798 Krefeld Ostwall 208 *
- * *
- * 100% Assembler Amiga 2000 GForce 68040 *
- * *
- *****************************************************************
-
- Warum einen Manager ?
-
- Der 'SetFunction'-Vector der exec.library ist wohl die einzige
- Funktion auf dem Amiga die nicht multitaskfähig ist. Stellen
- Sie sich vor das zwei Programme ein und den selben Vector einer
- Library auf eine eigene Funktion verbiegen.
- Beispiel:
- Programm A verbiegt den Vector auf die Adresse 'x' und erhält
- die Originaladresse 'o'.
- Programm B verbiegt den selben Vector auf die Adresse 'y' und
- erhält die Adresse 'x' zurück.
- Sie beenden jetzt Programm A, dieses setzt den Vector zurück
- auf die Originaladresse 'o'. Ist ja nicht weiter schlimm.
- Jetzt beenden Sie Programm B, auch dieses setzt den Vector
- zurück und zwar auf die Adresse 'x' die es erhalten hat.
- Da diese Adresses von Programm A stammt und dieses bereits
- beendet wurde, hat es auch den Speicher freigegeben wo diese
- Funktion stand. Wenn jetzt dieser Vector der Library angesprun-
- gen wird, grüßt mit Sicherheit der GURU.
-
-
- Der 'SetFunction' Manager Übernimmt jetzt die Aufgabe diese
- Adressen korrekt zu verwalten. Hierbei kann es durch unsauber
- und nicht nach den Amiga Programmierrichtlinien, geschriebenen
- Programmen zu Schwierigkeiten kommen.
- Es darf zum Beispiel kein Programm selbst einen Vektor verbiegen,
- es muß die Funktion 'SetFunction' der exec.library benutzen.
- Es darf auch nicht erwarten das die Adresse als JMP-Adresse in
- der Vectortabelle steht , die es der 'SetFunction'-Funktion
- übergeben hat. Das heißt das der Programmierer es sich anders
- merken muß ob er einen Vektor veändert hat z.B. durch einen
- Message-Port.Durch dieses Fehlverhalten wird ein solches Programm
- diesen Vektor immer wieder neu auf seine Funktion setzten und
- seinen Patch nie entfernen.
-
- Der SetFunction-Manager © V1.16 muß in Ihrer startup-sequence vor
- dem 'SetPatch' Befehl aufgerufen werden. Auf Turbosystemen muß er
- ebenfalls vor Befehlen aufgerufen werden die den Status der CPU
- verändern, oder das FastRom einschalten.
-
- Der Manager kann auch die Offsetnamen der einzelen Librarys
- mit anzeigen insofern Sie das Programm 'AmigaLibHelp' installiert
- haben, auch dieses Programm ist aus meiner Werkstatt.
-
- Geplant ist eine Benutzeroberfläche als Commodities-Objekt und
- eine Funktion, die es erlaubt einen Patch durch einen Requester
- zu verhindern oder auch einen installierten Patch zu entfernen.
-
- Duch einen Aufruf des Programmes mit der Option 'INFO',listet der
- Manager alle bekannten Veränderungen. Unter angabe eines Library-
- namens wird nur die Information zu dieser library gegeben.
-
- Wollen Sie mir Ihre Erfahrungen, Kritik, Verbesserungsvorschläge
- oder Bugreports mitteilen, dann schreiben Sie mir.
-
- ********************************** Viruserkennung *****************************
-
- SetFunction läßt den Bildschirm beim ersten Aufruf einmal in der
- Farbe grün aufblinken. Wenn ein Linkvirus 'FileGhost' oder 'Happy
- New Year 96!' erkannt wird,wird er wieder inaktiv gemacht und der
- Bildschirm blinkt in der Farbe gelb auf . Verändert irgendein
- Programm den Vector 'LoadSeg' von der dos.library ohne hierfür
- SetFunction der exec.library zu benutzen , so wird dieser sofort
- wieder entfernt und der Bildschirm blitzt wieder gelb auf.
- Wird die exec.library ohne SetFunction verändert so blinkt der
- Bildschirm rot auf und der Patch wird zurückgesetzt.
-
- Diesem Packet liegt ein kleines Prgramm dabei, welches die Link-
- Viren 'FileGhost' und 'Happy New Year 96!' aus einem Programm
- ausbauen kann.
-
- Syntax KillVirus <filename>
-