Цепочка хуков - это набор функций, в которых каждая функция вызывает следующую. Что важно в цепочке хуков, так это то, что программист может добавить еще одну функцию в цепочку во время выполнения. Один из способов сделать это - найти известное место, где хранится адрес первой функции в цепочке. Затем вы сохраняете значение этого указателя функции и перезаписываете значение по начальному адресу на адрес функции, которую вы хотите вставить в цепочку подключений. Затем вызывается функция, выполняет свою работу и вызывает следующую функцию в цепочке (если вы не решите иначе). Естественно, есть ряд других способов создать цепочку хуков, от прямой записи в память до использования средств метапрограммирования таких языков, как Ruby или Python.
Пример цепочки хуков - способ, которым приложение MS Windows обрабатывает сообщения. Каждая функция в цепочке обработки либо обрабатывает сообщение, либо отправляет его следующей функции в цепочке.