2016-12-14 6 views
0

Я использую следующий код для создания драйвера, который перехватывает таблицу SSDT Win7-32bit. Это взято прямо из Greg & Книга Джейми. Пожалуйста, обратите внимание, что я даже не назвал код крепежную от основной:Установка SSDT-крючка на Windows 7 32-разрядная VM возвращает системную ошибку 2

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

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

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

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

ответ

0

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\<your_service_name>

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

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

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

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

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

+0

Собственно, когда в файле SSDT_Hook.h Я отмечаю строки 141, 142, 148, 150 в качестве комментариев, драйвер загружается отлично .. –

+0

Какие строки вы точно отметили как комментарии? Возможно, драйвер использует подпрограмму, которая не экспортируется ядром в Windows 7. –

+0

141. m_UserTime.QuadPart + = curr-> UserTime.QuadPart; 142. m_KernelTime.QuadPart + = curr-> KernelTime.QuadPart; 148. prev-> NextEntryDelta + = curr-> NextEntryDelta; 151.prev-> NextEntryDelta = 0; –