Откуда берется информация в диалоге безопасности Windows во время установки драйвера? - PullRequest
2 голосов
/ 11 января 2012

В настоящее время мы работаем над драйвером устройства Windows на основе инфраструктуры Jungo WinDriver (не очень важной части).У нас есть сертификат VeriSign и нет проблем с процессом подписи или функциональностью драйвера.

Однако во время тестирования установки (в Windows 7) мы наблюдаем странное поведение в отношении диалогового окна безопасности Windows, которое запрашивает подтверждение установки во время установки.установка драйвера.

В этом диалоговом окне, кажется, отображаются 3 поля (ASCII'fied quote):

+----------------------------------------------------------------------+
| Windows Security                                                     |
+----------------------------------------------------------------------|
| Would you like to install this device software?                      |
|                                                                      |
| Name: <SOMETHING A> <SOMETHING B>                                    |
| Publisher: <COMPANY>                                                 |
|                                                                      |
+----------------------------------------------------------------------+
| <> Always trust software from "<COMPANY>"  [INSTALL] [DON'T INSTALL] |
+----------------------------------------------------------------------|
| Security info / warning etc.                                         |
+----------------------------------------------------------------------+

Теперь по какой-то причине <SOMETHING A> и <SOMETHING B> - это один и тот же текст,Что делает диалог выглядит немного странно.Эта информация взята из INF-файла (по крайней мере, сейчас я верю в это), но до сих пор я не смог найти подробную информацию о том, откуда он берется.

В данный момент похоже, что он повторяет содержаниеинформация «Провайдера» в INF-файле дважды по неизвестной (по крайней мере для меня) причине.

Кто-нибудь с большим опытом работы в этой области (INF-файлы, установка драйверов и т. д.) знает, что может вызвать этоПоведение?

Или, может быть, ссылка на дополнительную информацию о том, какая информация из INF-файла используется в этих диалоговых окнах?

Спасибо, что нашли время прочитать это и дать любой совет относительно проблемы.
-T

[Небольшое обновление] Кажется, только первая часть (<SOMETHING A>) выходит из INF.Что делает происхождение или 2-ю часть еще более загадочным ...

[Обновление 2] Копия INF для запроса (<...> - редактирование содержимого)

[Version]
Signature=$CHICAGO$

Provider=%PROVIDERNAME%

CatalogFile.NTamd64=<SOME CAT FILE NAME>.cat

DriverVer=<DATE>,<VERSION>

Class=<OUR COMPANY>
ClassGuid={<OUR CLASS ID>}

;---------------------------------------------------------------;
; Driver Information
;---------------------------------------------------------------;
[Manufacturer]
%PROVIDERNAME%=DeviceList,NTamd64

; x86 platform, Win9x, Windows 2000 and later
[DeviceList]
%DESCRIPTION%=DriverInstall,*<OUR DRIVER HANDLE>

; x64 platform, Windows XP x64 edition and later
[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall,*<OUR DRIVER HANDLE>

;---------------------------------------------------------------;

;---------------------------------------------------------------;
; Source/Destination Information
;---------------------------------------------------------------;
[DestinationDirs]
DefaultDestDir=10,System32\Drivers

[SourceDisksFiles]
<OUR DRIVER NAME>.sys=1

[SourceDisksNames]
;1=%INSTDISK%,,,.
;Delete the above line and uncomment the next line for WHQL
1 = %INSTDISK%,<SOME CAT FILE NAME>.cat,,

;---------------------------------------------------------------;

;---------------------------------------------------------------;
; Installation Section
;---------------------------------------------------------------;

; Installation script for Windows 2000 and later
[DriverInstall.NT]
CopyFiles=DriverCopyFiles

[DriverCopyFiles]
<OUR DRIVER NAME>.sys,,,0x22    ; COPYFLG_NOSKIP | COPYFLG_NO_VERSION_DIALOG

[DriverInstall.NT.hw]
AddReg=DriverHwAddReg

[DriverHwAddReg]
HKR,,SampleInfo,,""

; Register a new class in Windows 2000 and later
[ClassInstall32]  ; Register a new class in Windows 2000 and later
AddReg=UpDateRegistry

[UpDateRegistry]
HKR,,,,<OUR COMPANY>
HKR,,Icon,,-5

; Add device driver service
[DriverInstall.NT.Services]
AddService=<OUR SERVICE NAME>, 0x00000002, DriverService

[DriverService]
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\system32\drivers\<OUR DRIVER NAME>.sys

;------------------------------------------------------------------------------
;  String Definitions
;------------------------------------------------------------------------------

[Strings]
PROVIDERNAME=<THE NAME THAT SHOWS UP TWICE (BUT NOT REALLY)>
DESCRIPTION=<SOME DESCRIPTION>
INSTDISK="Driver Installation Disk"

<THE NAME THAT SHOWS UP TWICE (BUT NOT REALLY)> - это то, что отображается в <SOMETHING A>.

Однако, как указано в небольшом обновлении 1, изменение этого значения приводит только к изменению указанного <SOMETHING A>, но недругая часть.

После изменения каких-либо вещей для проверки значение, отображаемое в <SOMETHING B>, кажется, выглядит "из воздуха", так как я не могу найти его в файле INF или RC файлаводитель вообще.

Ответы [ 2 ]

2 голосов
/ 12 января 2012

Вместе с каким-то другим источником (спасибо всем ребятам из ntdev на osronline.com [особенно Максиму]) и некоторыми копаниями в реестре, мы считаем, что наконец-то смогли выяснить происхождение содержимого диалога.Ниже приведены вещи, которые мы нашли:

Повторное использование примера диалога:

+----------------------------------------------------------------------+
| Windows Security                                                     |
+----------------------------------------------------------------------|
| Would you like to install this device software?                      |
|                                                                      |
| Name: <SOMETHING A> <SOMETHING B>                                    |
| Publisher: <COMPANY>                                                 |
|                                                                      |
+----------------------------------------------------------------------+
| <> Always trust software from "<COMPANY>"  [INSTALL] [DON'T INSTALL] |
+----------------------------------------------------------------------|
| Security info / warning etc.                                         |
+----------------------------------------------------------------------+

Поля, кажется, разрешены следующим образом:

<SOMETHING A> Кажется равнымзначение в поле «Провайдер» в вашем INF-файле

<SOMETHING B> Кажется, есть несколько случаев:

  • В тех случаях, когда класс устройства уже существует, это значение равно значению "ClassDesc"в соответствующем разделе реестра.(Найдено в: HKLM\SYSTEM\ControlSet001\Control\Class\<The GUID of your device class>)
  • Однако для системных классов внутренних устройств это значение не отображается, хотя «ClassDesc» не является пустым.Также может быть, что значение не разрешено правильно или просто игнорируется «по выбору» в этих случаях.
  • Ничего не будет отображаться, если эта конкретная установка будет впервые представлена ​​в классе этого устройства.

<COMPANY> Кажется, что просто равняется значению CN из сертификата, использованного для подписи драйвера.

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

0 голосов
/ 25 августа 2015

Имя в приглашении происходит из директивы DriverPackageDisplayName INF-файла, а издатель - из проверенной подписи в CAT-файле.

Источник: http://www.davidegrayson.com/signing/

...