Ich empfehle ausgedehntes Schmökern auf
www.osronline.com, die kostenlose Mitgliedschaft dort, sowie die auf dem dortigen Newsserver vorhandenen Newsgroups ausführlich zu lesen. Das Thema ist relativ komplex, für den Einstieg sei nur gesagt, dass man sich die SDT (eine Art Sprungtabelle in der grundlegende Systemfunktionsadressen (Einsprungpunkte in den Kernel) zu finden sind) anschauen kann, und wenn eine der Adressen dort ausserhalb des Speicherbereichs des Kernels liegt, hat man den Hook gefunden. Es ist dann auch kein grosses Problem, entweder eigene Massnahmen zu ergreifen (nen Kopierschutz würde dann z.B. ein manipuliertes System vermuten und den Start verweigern) oder einfach "drumrum" zu laufen. Dazu sucht man einfach im Kernel nach einem charakteristischen Muster an dem man die gehookte Funktion erkennt (man könnte je nach gehookter Funktion natürlich auch einfach in den Exports nachschauen, aber wenn ich einen Hook entdeckt habe, muss ich auch davon ausgehen dass dort manipuliert wurde), und ruft dann die gefundene Adresse statt der regulären auf.
Nachtrag: Hab jetzt doch endlich das PDF komplett zum Anzeigen, und sehe dass da direkt im Kernel gepatcht werden soll. Sowas ist wirklich nicht die feine englische Art
Das Vorgehen ist dabei praktisch gleich, nur etwas aufwendiger, weil man nicht nur einfach Adressen interpretiert sondern Assemblerbefehle. Man holt sich die Einsprungadresse und liest von dort einfach ein paar Bytes (je nachdem wie paranoid man ist
) und schaut ob Sprungbefehle dabei sind, die Ziele ausserhalb des Kerneladressbereichs haben. Zum Beispiel in der Art "ist der erste Befehl ein Sprung zu einer Adresse ausserhalb des Kernel-Adressbereiches, dann BUMM!"
Es bleibt noch der obligatorische Hinweis, dass das Rumwerkeln an den Betriebssystem-Innereien besser entsprechend fähigen Leuten überlassen werden sollte... Zumindest aber sollte man sich über die möglichen Konsequenzen seines Tuns wie Datenverlust und zerschossene Filesysteme im Klaren sein