A hook interface module cooperates with a kernel whose functionality is
being modified and with kernel modules providing modified functionality.
The kernel includes symbols indicating execution points where modification
is permitted. The hook interface module resolves an address for each
symbol and maintains a list of any modification functions associated with
each symbol. An API exposes a registration method for enabling the kernel
modules to register a modification function for a symbol and add an
indicator for the modification function to the list for the symbol. An
arming method enables the kernel modules to arm modification functions
associated with the symbols. This modifies the address contents for each
symbol to cause program execution at the symbol address to jump to a
location in the hook interface module. A dispatcher responds to this and
causes execution to jump to any modification function associated with a
symbol from which execution has jumped.
Μια ενότητα διεπαφών γάντζων συνεργάζεται με έναν πυρήνα η ο οποίος λειτουργία τροποποιείται και με τις ενότητες πυρήνων που παρέχουν την τροποποιημένη λειτουργία. Ο πυρήνας περιλαμβάνει τα σύμβολα που δείχνουν τα σημεία εκτέλεσης όπου η τροποποίηση επιτρέπεται. Η ενότητα διεπαφών γάντζων επιλύει μια διεύθυνση για κάθε σύμβολο και διατηρεί έναν κατάλογο οποιωνδήποτε λειτουργιών τροποποίησης που συνδέονται με κάθε σύμβολο. Ένα API εκθέτει μια μέθοδο εγγραφής για στις ενότητες πυρήνων για να καταχωρήσει μια λειτουργία τροποποίησης για ένα σύμβολο και να προσθέσει έναν δείκτη για τη λειτουργία τροποποίησης στον κατάλογο για το σύμβολο. Μια μέθοδος εξοπλισμού επιτρέπει στις ενότητες πυρήνων για να οπλίσει τις λειτουργίες τροποποίησης που συνδέονται με τα σύμβολα. Αυτό τροποποιεί το περιεχόμενο διευθύνσεων για κάθε σύμβολο για να αναγκάσει την εκτέλεση προγράμματος στη διεύθυνση συμβόλων για να πηδήσει σε μια θέση στην ενότητα διεπαφών γάντζων. Ένας αποστολέας αποκρίνεται σε αυτό και αναγκάζει την εκτέλεση για να πηδήσει σε οποιαδήποτε λειτουργία τροποποίησης που συνδέεται με ένα σύμβολο από το οποίο η εκτέλεση έχει πηδήσει.