обходной путь, чтобы пропустить подписку драйвера в 64-битных окнах

Я частное лицо, а не компания, и я работаю над драйвером устройства режима виртуального ядра. Я знаю, что могу подписать драйвер и запустить его в тестовом режиме. Однако я хочу распространять свой драйвер бесплатно, но у меня нет ресурсов для покупки подписи через verisign или globalsign, так как это очень дорого, и я ничего не зарабатываю с помощью этого драйвера.

Также проверка подписи драйвера будет сложной задачей для некоторых пользователей. Итак, я хочу знать, есть ли обходной путь для использования драйвера без подписи в 64-битной версии? Например, запустить его в режиме совместимости для 32-битной версии или скрипт, который может самостоятельно подписывать драйвер от имени пользователя.


Итак, теперь вопрос, по существу, заключается в том, распространю ли я все бывшие, упомянутые в этой процедуре, и создаю сценарий для выполнения всех этих команд. Тогда может ли пользователь подписать драйвер с помощью скрипта?

ПРОЦЕДУРА :

1. запустить Inf2Cat.exe / драйвер: "U: \ MyDriver" / os: 7_X64.

2. Найдите makecert.exe в WDK Makecert -r -pe -ss PrivateCertStore -n "CN = TestCertforWDK" TestCert.cer.

3. Используйте Signtool.exe в WDK, чтобы подписать файл cat Signtool sign / v / s PrivateCertStore / n TestCertForWDK / t http://timestamp.verisign.com/scripts/timestamp.dll" U: \ MyDriver \ MyDriver.cat "

4. Используйте Signtool.exe в WDK, чтобы подписать драйвер Signtool sign / v / s PrivateCertStore / n TestCertForWDK / t http://timestamp.verisign.com/scripts/timestamp.dll "U: \ MyDriver \ MyDriver.sys"

5. На тестовом компьютере импортируйте сертификат: certmgr.exe / добавить TestCert.cer / s / r localMachine root

6. Добавьте его в список доверенных издателей certmgr.exe / добавьте TestCert.cer / s / r localMachine trustpublisher

7.Проверьте знак для драйвера Signtool verify / pa / v MyDriver.sys

8.Проверьте подпись для файла cat Signtool verify / pa / v / c MyDriver.cat MyDriver.inf


person rajat    schedule 31.05.2012    source источник
comment
Я думаю, тебе не повезет. Требуется подпись. Либо вам придется купить его, либо пользователь, если вы намереваетесь подписаться самостоятельно.   -  person Joel Lucsy    schedule 31.05.2012
comment
Хм Ок. Можно ли написать какой-нибудь скрипт, который сам подписывает пользователя? .   -  person rajat    schedule 31.05.2012
comment
Я почти уверен, что 64-битные драйверы должны иметь перекрестную подпись с сертификатом Microsoft, который поддерживает только относительно небольшое количество корневых центров сертификации; здесь нельзя использовать самоподписание.   -  person Luke    schedule 31.05.2012
comment
Драйвер работал нормально, когда я сам подписал сертификат. Также должна быть включена тестовая подпись, которую можно включить с помощью bcdedit.exe / установить TESTSIGNING ON   -  person rajat    schedule 31.05.2012
comment
Есть причина, по которой это называется тестовым подписанием. Не включайте его на машинах конечных пользователей.   -  person Luke    schedule 01.06.2012
comment
Ок. Думаю, не будет проблемой, если я спрошу пользователей, хотят ли они включить тестовую регистрацию. Потому что я не вижу смысла платить за драйвер с открытым исходным кодом.   -  person rajat    schedule 01.06.2012
comment
Вам не нужно подписывать файл .sys вашего драйвера, потому что его хеш встроен в каталог. Вы даже можете сломать файл каталога, встроив подпись в свой файл sys после того, как вы создали файл каталога.   -  person Christopher    schedule 11.06.2012


Ответы (2)


Так что ответ на этот вопрос - большой жирный нет. Извините, но если вы не найдете обходной путь, управляемый пользователем, или какую-то компанию, желающую спонсировать (подписать ваш драйвер), это невозможно (я имею в виду невероятно :)). Эта функция была реализована в Windows, чтобы предотвратить установку надоедливых руткитов.

Хотя это, вероятно, кажется суровым, но не позволяет установить множество руткитов на пользовательские машины. Фактически, Microsoft недавно исправила ошибку, связанную с подписью драйверов, которая позволяла хакерам использовать механизм подписи Microsoft в Windows для подписи драйверов, которые будут приняты системой.

Я очень сомневаюсь, что вы найдете способ обойти это программно. И если да, дайте мне знать.

person Ryan    schedule 15.06.2012
comment
Если он даст вам знать, я уверен, что MS незамедлительно исправит его, поскольку это будет своего рода взлом / эксплойт :) - person paulm; 27.03.2014

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

https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/9a839ac3-4438-43bb-b1b8-4ed8da58ab45/how-much-does-it-cost-to-get-hck-certificates?forum=whck

person trial developer    schedule 04.05.2015