Ein Hook ist eine von der Software bereitgestellte Funktionalität, mit der Benutzer dieser Software unter bestimmten Umständen ihren eigenen Code aufrufen können. Dieser Code kann den aktuellen Code erweitern oder ersetzen.
In den alten Tagen, als Computer wirklich persönlich waren und Viren weniger verbreitet waren (ich spreche von den 80ern), war es so einfach wie das Patchen der Betriebssystemsoftware selbst, um Ihren Code aufzurufen. Ich erinnere mich, dass ich auf dem Apple II eine Erweiterung der Applesoft BASIC-Sprache geschrieben habe, in der mein Code einfach in den BASIC-Interpreter eingebunden wurde, indem ein Aufruf meines Codes eingefügt wurde, bevor eine der Zeilen verarbeitet wurde.
Einige Computer hatten vorgefertigte Hooks, ein Beispiel war der E / A-Stream auf dem Apple II. Es verwendete einen solchen Hook, um das gesamte Festplattensubsystem zu injizieren (Apple II-ROMs wurden ursprünglich in den Tagen gebaut, als Kassetten das primäre Speichermedium für PCs waren). Sie haben die Festplatten gesteuert, indem Sie den ASCII-Code 4 ( ) gefolgt von dem Befehl gedruckt haben, den CTRL-D
Sie ausführen möchten, und dann aCR
, und , und er wurde vom Datenträgersubsystem abgefangen, das sich in die Apple ROM-Druckroutinen eingebunden hatte.
So zum Beispiel die Zeilen:
PRINT CHR(4);"CATALOG"
PRINT CHR(4);"IN#6"
würde den Festplatteninhalt auflisten und dann den Computer neu initialisieren. Dies ermöglichte Tricks wie den Schutz Ihrer BASIC-Programme durch Setzen der ersten Zeile wie folgt:
123 REM XIN#6
Verwenden Sie dann POKE
, um das CTRL-D
Zeichen dort einzufügen, wo dieX
war. Dann würde jeder, der versucht, Ihre Quelle aufzulisten, die Neuinitialisierungssequenz über die Ausgaberoutinen senden, wo das Festplattensubsystem sie erkennen würde.
Das ist oft die Art von Trick, auf die wir zurückgreifen mussten, um das gewünschte Verhalten zu erreichen.
Heutzutage bietet das sicherere Betriebssystem Funktionen für Hooks selbst, da Sie das Betriebssystem nicht mehr "während des Flugs" oder auf der Festplatte ändern sollten.
Sie sind schon lange da . Mainframes hatten sie (Exits genannt) und viele Mainframe-Software nutzt diese Funktionen auch jetzt noch. Mit dem mit z / OS gelieferten kostenlosen Quellcodeverwaltungssystem (SCLM) können Sie beispielsweise das Sicherheitssubsystem vollständig ersetzen, indem Sie einfach Ihren eigenen Code in den Exit einfügen.