Установка SSDT-хука на 32-битной виртуальной машине Windows 7 возвращает системную ошибку 2

Я использую следующий код для создания драйвера, который перехватывает таблицу SSDT Win7-32bit. Это взято прямо из книги Грега и Джейми. Обратите внимание, что я даже не вызываю код перехвата из main:

main.c http://pastebin.com/Ck8FSVbv

SSDT_Hook.h http://pastebin.com/y1ssD1ni

Когда я пытаюсь загрузить его, sc.exe возвращает ошибку 2.

Но я не могу понять, почему. Не удалось найти ответы на подобные вопросы.

1 ответ

Кажется, что система не может найти ваш файл драйвера. Вы, вероятно, указали неверный полный путь при установке сервиса. Посмотрите на ключ реестра службы

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\<your_service_name>

для ImagePath значение. Это значение должно содержать полный путь к файлу драйвера, либо относительно системного корня (обычно C:\Windows) или "полностью" абсолютный - начиная с \??\X: префикс (X это буква диска, \??\ делает путь абсолютным с точки зрения диспетчера объектов).

Я предполагаю, что вы взяли код из руткитов: подрыв книги ядра Windows. Это отличная книга, однако, имейте в виду следующее:

1) он довольно старый и многие его коды не работают на многопроцессорных машинах,

2) это хакерская книга, которая означает, что она не говорит вам, как правильно делать вещи, она просто говорит вам, как заставить код работать. Код на его основе может работать, но может содержать ошибки, если вам не хватает знаний о разработке драйверов Windows.

Это не значит, что это плохая книга. Это просто не руководство, как вы должны писать драйверы для Windows.

Другие вопросы по тегам