Awesome
Swap-control-ioctl
Хук функции DRIVER_DISPATCH(IRP_MJ_DEVICE_CONTROL) отвечающую за ввод-вывод ioctl устройства на примере драйвера SpeedFan.
Суть такова, что мы в сам указатель PDRIVER_DISPATCH пишем адресс trampoline который находится в диапазоне секции .text ,тем самым я подразумевал что мы можем пройти слепую проверку античита :
if (major_function.address < section.address || major_function.address >= section.address + section_size) { /FOUND/ }
Но как оказалось, существуют более безопасные методы перехвата DRIVER_DISPATCH, позволяющие не модифицировать страницу .text