Если взять просто смещение относительно базы загруженного ядра, где смещение равно адресу функции в ядре, то такое подойдет или как то иначе?
Ещё малек по общей стратегии не понимаю! Мы у замороженых потоков по очереди берем контекст и перенаправляем его на наш код, но так как он в заморозке он его не исполняет! После того как все треды перенаправлены мы их размораживаем и они выполняют код обработчика! Но доменя никак не допрет как наш обработчик поймет какое состояние какому потоку восстановить(стек+еип+ефлагс)?
link Сказано: Она перечисляет все треды процесса и выводит их из спящего состояния, если конечно число остановок равно 1. Наш обработчик в контексте всех потоков вызывается. При настройке(захвате) его контекста сохраняем в его стеке все необходимые регистры. Затем в обработчике восстанавливаем их из стека(RGP, влажки и Eip).