всё что тебе нужно можно найти в интернете
например вот: https://yougame.biz/threads/342409/
хук, если по простому, заменяется начало функции на прыжок на адрес нашей функции
-- здесь вообще всё что тебе может понадобится
паттерн == сигнатура, это массив байт (хотя по факту инструкций), функа просто ищет точное совпадение этой последовательности и должна возвращать адрес начала
и изучи как компуктер работает чтобы понимать побольше