Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Наборы обновлений для Windows XP/2003/Windows 7 » Система - [утилита] Установка неподписанных драйверов

Ответить
Настройки темы
Система - [утилита] Установка неподписанных драйверов

Аватара для simplix

Silent


Сообщения: 1305
Благодарности: 1328

Профиль | Сайт | Цитировать


Вложения
Тип файла: rar PrivateHash.rar
(1.6 Kb, 871 просмотров)
Нашёл исходник утилиты, которая позволяет корректно вычислять PrivateHash для выбора параметра "Пропускать", при установке драйвера без цифровой подписи.

читать дальше »
Код: Выделить весь код
#include <windows.h>
#include <wincrypt.h>
#include <stdio.h>

#define HP_HASHVALUE HP_HASHVAL

/* This program turns the Driver signing Policy On/Off for Windows XP */
 * Written by Stefan `Sec` Zehl <sec@xxxxxx>, 15.11.2004
 *
 * Thanks to sysinternals.com for regmon and apispy
 *        to msdn.microsoft.com for windows reference
 *        to cygwin for their environment
 */

void MyHandleError(char *s){
	printf("Error: %s, number %x\n.",s,(unsigned int)GetLastError());
	exit(1);
}
//--------------------------------------------------------------------
int main(void){
	HCRYPTPROV hCryptProv;
	HCRYPTHASH hHash;
	BYTE data[16];
	DWORD len;
	DWORD seed;
	HKEY hkey;
	BYTE onoff=0; // This is the On/Off toggle
	char input[4];
	int x;

	// HKLM\System\WPA\PnP\seed
	if(RegOpenKeyEx(
			HKEY_LOCAL_MACHINE,
			"System\\WPA\\PnP",
			0,
			KEY_READ,
			&hkey
			)==ERROR_SUCCESS){
		printf("RegOpenKey sucess\n");
	}else{
		printf("RegOpenKey failure\n");
	};

	len=sizeof(seed);
	if(RegQueryValueEx(
			hkey,
			"seed",
			NULL,
			NULL,
			(BYTE*)&seed,
			&len
			)==ERROR_SUCCESS){
		printf("RegQueryValue sucess\n");
	}else{
		printf("RegQueryValue failure\n");
	};

	if(hkey)
		RegCloseKey(hkey);

	printf("Seed=%x\n",(unsigned int)seed);

	printf("Hello, World\n");
	if(CryptAcquireContext(
				&hCryptProv, 
				NULL, 
				NULL, 
				PROV_RSA_FULL, 
				0)) 
	{
		printf("CryptAcquireContext complete. \n");
	} else {
		MyHandleError("Acquisition of context failed.");
	}
	//--------------------------------------------------------------------
	// Create a hash object.

	if(CryptCreateHash(
				hCryptProv, 
				CALG_MD5, 
				0, 
				0, 
				&hHash)) 
	{
		printf("An empty hash object has been created. \n");
	} else {
		MyHandleError("Error during CryptBeginHash!\n");
	}
	//--------------------------------------------------------------------
	// Compute the cryptographic hash on the data.

	input[0]=0;
	input[1]=onoff; // This is the Value!
	input[2]=0;
	input[3]=0;

	if(CryptHashData(
			hHash,
			input,
			sizeof(input),
			0))
	{
		printf("The data has been hashed. \n");
	} else {
		MyHandleError("Error during CPHashData!\n");
	}
	//--------------------------------------------------------------------

	if(CryptHashData(
			hHash,
			(BYTE*)&seed,
			sizeof(seed),
			0))
	{
		printf("The data has been hashed. \n");
	} else {
		MyHandleError("Error during CPHashData!\n");
	}
	//--------------------------------------------------------------------
	len=sizeof(data);
	if( CryptGetHashParam(
			hHash,
			HP_HASHVALUE,
			data,
			&len,
			0))
	{
		printf("The hash has been retrieved. \n");
	} else {
		MyHandleError("Error during CPGetHashParam!\n");
	}

	//--------------------------------------------------------------------
	// Clean up.

	// Destroy the hash object.

	if(hHash) {
		if(!(CryptDestroyHash(hHash)))
			MyHandleError("Error during CryptDestroyHash");
	}

	// Release the CSP.

	if(hCryptProv) {
		if(!(CryptReleaseContext(hCryptProv,0)))
			MyHandleError("Error during CryptReleaseContext");
	}

	printf("Hash: ");
	for(x=0;x<sizeof(data);x++){
		printf("%x ",data[x]);
	};
	printf("\nCreate md5 hash completed without error. \n");

	//--------------------------------------------------------------------
	// HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\PrivateHash
	if(RegOpenKeyEx(
			HKEY_LOCAL_MACHINE,
			"Software\\Microsoft\\Windows\\CurrentVersion\\Setup",
			0,
			KEY_WRITE,
			&hkey
			)==ERROR_SUCCESS){
		printf("RegOpenKey sucess\n");
	}else{
		printf("RegOpenKey failure\n");
	};

	len=sizeof(seed);
	if(RegSetValueEx(
			hkey,
			"PrivateHash",
			0,
			REG_BINARY,
			data,
			sizeof(data)
			)==ERROR_SUCCESS){
		printf("RegSetValueEx sucess\n");
	}else{
		printf("RegSetValueEx failure\n");
	};

	if(hkey)
		RegCloseKey(hkey);
	//--------------------------------------------------------------------
	// HKLM\Software\Microsoft\Driver Signing\Policy
	if(RegOpenKeyEx(
			HKEY_CURRENT_USER,
			"Software\\Microsoft\\Driver Signing",
			0,
			KEY_WRITE,
			&hkey
			)==ERROR_SUCCESS){
		printf("RegOpenKey sucess\n");
	}else{
		printf("RegOpenKey failure\n");
	};

	len=sizeof(seed);
	if(RegSetValueEx(
			hkey,
			"Policy",
			0,
			REG_BINARY,
			&onoff,
			1
			)==ERROR_SUCCESS){
		printf("RegSetValueEx sucess\n");
	}else{
		printf("RegSetValueEx failure\n");
	};
	if(hkey)
		RegCloseKey(hkey);

	//--------------------------------------------------------------------
	// HKLM\Software\Microsoft\Driver Signing\Policy
	if(RegOpenKeyEx(
			HKEY_LOCAL_MACHINE,
			"Software\\Microsoft\\Driver Signing",
			0,
			KEY_WRITE,
			&hkey
			)==ERROR_SUCCESS){
		printf("RegOpenKey sucess\n");
	}else{
		printf("RegOpenKey failure\n");
	};

	len=sizeof(seed);
	if(RegSetValueEx(
			hkey,
			"Policy",
			0,
			REG_BINARY,
			&onoff,
			1
			)==ERROR_SUCCESS){
		printf("RegSetValueEx sucess\n");
	}else{
		printf("RegSetValueEx failure\n");
	};
	if(hkey)
		RegCloseKey(hkey);

	exit(0);
}

Во вложении - скомпилированная утилита, которая корректно устанавливает нужный параметр (проверено на XP и 2003). Пригодится всем, кто имеет дело с установкой драйверов - утилиту достаточно запустить перед установкой неподписанного драйвера и он установится молча, т. к. выбор политики сработает мгновенно.

Отправлено: 10:35, 19-06-2008

 

Extractor


Сообщения: 1422
Благодарности: 821

Профиль | Отправить PM | Цитировать


Цитата simplix:
Можно элементарно сделать аддон, который запустит программку на T13 и после этого можно ставить свои драйвера.

Речь о том, что документированно нельзя управлять этим чекбоксом программно. То есть уже можно...
»
Для автоустановки можно просто прописать соответствующие параметры в winnt.sif. Эффект будет аналогичный.
А этот исходник наш BoaSoft давно уже с успехом применяет в своем проекте по интеграции драйверов. :-)

Кроме того о других методах политикой чеерез недокументированую функцию pGetRealSystemTime смотрите здесь
http://forum.oszone.net/thread-106849.html

-------
Мои проекты:
Системные: Fake-Setup Advanced | MSSTMake | UserMake
Оформление: WinstyleMonitor | Winstyle - Установка на "живую" систему | Windows 7 Universal Patcher | Панель персонализации для Windows 7 Starter & Home Basic
Уголок юного археолога: Внутренности Установщика WinXP


Отправлено: 17:55, 19-06-2008 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для simplix

Silent


Сообщения: 1305
Благодарности: 1328

Профиль | Сайт | Цитировать


Цитата Mr dUSHA:
Для автоустановки можно просто прописать соответствующие параметры в winnt.sif »
А если нужно будет установить драйвер на установленной системе или во время обычной установки? Нужна универсальность, а т. к. размера у файла практически нету, то его можно применять в любом удобном случае (непосредственно перед установкой драйвера) - и всё будет корректно.
Цитата Mr dUSHA:
А этот исходник наш BoaSoft давно уже с успехом применяет в своем проекте по интеграции драйверов. »
Исходнику уже больше 4-х лет, надыбал его на просторах гугля )) А вот утилиты такой нигде не видел, теперь будет.

Отправлено: 18:13, 19-06-2008 | #12


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png система.png
(71.1 Kb, 78 просмотров)

Цитата simplix:
yurfed, Вас не туда занесло, параметр находится здесь:
Свойства системы => Оборудование => Подписывание драйверов »
простите, уточните версию win 7. у меня в профессиональной нет подписывания

Отправлено: 21:38, 05-05-2011 | #13


Аватара для SOLON7

Ветеран


Автор проектов


Сообщения: 1153
Благодарности: 268

Профиль | Отправить PM | Цитировать


Использую для установки драйверов следующие функции
UpdateDriverForPlugAndPlayDevicesA
DriverPackageInstallA

1.Возможно будет установить Неподписанные дрова с этой тулзой ??
2.На 2k,xp,6,7 ???

-------
Моя цель - достигнуть количество благодарностей равным числу моих постов.


Отправлено: 16:20, 05-06-2011 | #14


Новый участник


Сообщения: 33
Благодарности: 2

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: 7z ph.7z
(1.5 Kb, 123 просмотров)

Отличная идея,все дрова ставятся. Но почемуто не работает удаленно через psexec, а хотелось бы.


Ошибка: 0x80090016L The provider DLL file does not exist or is not on the current path. И я думаю это не правдивая информация об ошибке, прога ни пытается открывать нестандартные dll.


И уже я разабрался, если такая ошибка то нужно выполнить CryptAcquireContext еще раз с параметром CRYPT_NEWKEYSET

Прикрепил исправленую версию

Последний раз редактировалось q28q, 03-08-2011 в 15:14.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:42, 02-08-2011 | #15


Аватара для Freddy1984

Старожил


Сообщения: 147
Благодарности: 9

Профиль | Цитировать


Здравствуйте! Скажите пожалуйста, данная утилита может заменить WatchDriverSigningPolicy?
Почему спрашиваю? Потому что WatchDriverSigningPolicy переодически не срабатывает, и появляется окно о предупреждении о неподписанных драйверах.

Отправлено: 20:37, 28-03-2012 | #16


Новый участник


Сообщения: 36
Благодарности: 6

Профиль | Отправить PM | Цитировать


делал подобный по назначению скрипт на Sign of misery, который искал окно по заголовку и нажимал в нем Yes. только для русской\английской\64битной winxp пришлось писать разные версии, тк текст сообщений везде разный. надеюсь эта прога заменит те скрипты. потестю как оно.

Отправлено: 22:04, 28-03-2012 | #17


Аватара для Guman

Ветеран


Сообщения: 631
Благодарности: 58

Профиль | Отправить PM | Цитировать


simplix, что скажеш насчет версии от q28q
Цитата q28q:
Отличная идея,все дрова ставятся. Но почемуто не работает удаленно через psexec, а хотелось бы.
Ошибка: 0x80090016L The provider DLL file does not exist or is not on the current path. И я думаю это не правдивая информация об ошибке, прога ни пытается открывать нестандартные dll.
И уже я разабрался, если такая ошибка то нужно выполнить CryptAcquireContext еще раз с параметром CRYPT_NEWKEYSET
Прикрепил исправленую версию
Вложения
ph.7z
(1.5 Kb, 27 просмотров) »
Это исправление или наоборот.... какой версие пользоваться твоей или же его
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:37, 18-06-2012 | #18


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Установил драйвер на Windows XP 64 для принтера HP LaserJet 1010 от Widows Vista 64, потому что другого нет. Но я не помню, как это сделал. Благополочно забыл и не могу вспомнить. При установке программа упорно завирает, будто бы мой драйвер не предназначен для 64-битных процессоров.
Кажется, ставил Iorbit Driver под семёркой, делал инсталлятор для этого драйвера и потом устанавливал его под XP. Но мне кажется, что должен быть способ проще. Есть соображения? Еще подходит универсальный драйвер от HP, но я точно помню, что печатал драйвером Висты.

Отправлено: 23:08, 03-12-2015 | #19



Компьютерный форум OSzone.net » Автоматическая установка Windows » Наборы обновлений для Windows XP/2003/Windows 7 » Система - [утилита] Установка неподписанных драйверов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - DriverForge - утилита для автоматической установки драйверов mozgabyte Наборы обновлений для Windows XP/2003/Windows 7 6 09-11-2012 19:48
Разное - как отключить проверку неподписанных драйверов в ХР? srokk Microsoft Windows 2000/XP 20 25-02-2010 11:57
Драйвер - Установка драйверов ruv123 Microsoft Windows 2000/XP 2 15-08-2009 20:20
Установка драйверов с CD Demy Автоматическая установка Windows 2000/XP/2003 2 23-02-2007 23:26
Установка драйверов с CD eXtrim Автоматическая установка Windows 2000/XP/2003 1 19-05-2005 13:12




 
Переход