Анализ
У меня нет такого же оборудования и я не использую Windows 8.x, так что я собираюсь предоставить некоторый статический анализ.
Струны
Сначала я сканировал 64-битный файл библиотеки mvs91xx.dll
с помощью утилиты Strings.
Строки просто сканируют файл, который вы передаете, на наличие строк UNICODE (или ASCII) по умолчанию длиной 3 или более символов UNICODE (или ASCII).
Источник: Струны
Вот полный вывод:
!This program cannot be run in DOS mode.
Rich
.text
`.data
.pdata
@.rsrc
@.reloc
EEE
('8PW
700PP
```hhh
xppwpp
SeShutdownPrivilege
Change Cahce Module Policy
You must restart your computer before the new settings will take effect.
Do you want to restart your computer now?
RSDS
d:\project\2013_10\magni_svn\windows\win\sys\amd64\mv91xxm.pdb
%f&
B@H
L$ H
D$ `
D$(H
D$$
D$HH
D$0f
D$XH
\$P
s I
NtH
(tL
t?3
\$0H
t$8H
D$PD
D$1
D$3A
T$0A
8M;
t.H
|$8H+
T$0H
tJH
0t4H
|$8H
L$0
D$(
D$
|$0H
D$0D
L$(H
D$
L$PH3
\$`I
s I
d$X
d$P
!D$0
D$T
D$4
D$8
D$<
D$X
D$PH
D$PH
L$XH
d$(
d$
D$0A
D$4
D$0
D$<
L$X
D$0
d$
%L!
u'H
d$
d$
tUH
D$(
D$
L$0H3
\$XH
D$(
D$
D$4H
D$(H
D$@E3
D$4P
D$
D$4H
D$(H
D$0E3
D$4
D$
L$0
L$0
L$@
L$@
ATH
d$
t2M
d$
t$@H
0A\
VWATAUAVH
t7H
t!H
\$PH
l$XH
A^A]A\_^
SVWH
\$
\$
uxH
D$
\$
t/L
D$
\$
D$
\$
uoE3
\$ E3
\$ H
\$
uaL
D$
\$
D$
\$
_^[
\$0H
t$8H
@SH
McP
A8H
HcH<H
9PE
f9Q
LcA<E3
(E;
t"M+
d$0
L$0
\$0
L$8D
\$8L3
\$@H
\$XE3
T$`H
L$X
D$PH
|$P
tAH
D$8
D$HH
D$0H
D$@H
D$(H
D$ L
L$PL
D$XH
T$`3
D$hH
D$p3
@UH
EP=csm
E0H
@UH
Ep=csm
E8H
@UH
E`=csm
EHH
@UH
=csm
E$H
@UH
E(=csm
E4H
@UH
E@=csm
ELH
@UH
EX=csm
EhH
@UH
Ex=csm
@UH
@UH
pd
pd
strchr
atol
_XcptFilter
malloc
_initterm
free
_amsg_exit
__C_specific_handler
msvcrt.dll
SetupDiOpenDevRegKey
SETUPAPI.dll
HeapAlloc
GetCurrentProcess
HeapFree
GetProcessHeap
GetLastError
DisableThreadLibraryCalls
OutputDebugStringA
CloseHandle
LocalFree
Sleep
RtlVirtualUnwind
RtlLookupFunctionEntry
RtlCaptureContext
QueryPerformanceCounter
GetTickCount
GetCurrentThreadId
GetCurrentProcessId
GetSystemTimeAsFileTime
TerminateProcess
UnhandledExceptionFilter
SetUnhandledExceptionFilter
KERNEL32.dll
OpenProcessToken
RegSetValueExA
RegQueryValueExA
LookupPrivilegeValueA
AdjustTokenPrivileges
RegCloseKey
InitiateSystemShutdownExA
ADVAPI32.dll
EnableWindow
SetWindowLongPtrA
GetDlgItem
MessageBoxA
GetFocus
SendDlgItemMessageA
GetWindowLongPtrA
USER32.dll
DestroyPropertySheetPage
CreatePropertySheetPageA
COMCTL32.dll
MVCOINST.dll
ESATAPortPropPageProvider
N@
kU'9
&D(
HMXB
9;5
?q=
?Zd;
?3=
?/L[
S;uD
?$#
;1a
z?aUY
D?$?
*?}
d|F
U>c{
#Tw
zc%C1
.:3q
,%I
-64OS
NKeb
eSATAport
MatchingDeviceId
eSATAportCount
DriverPolicySet
0123
wwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwww
www
wwww
wwwwwwwwwww}
wwwwwwww
wwwwwwwwwwwwww
wwwwwwwwwwwwww
wwwwwww}
wwww
wwwwwww}x
}wwwwwww}
wwww
wXk
qN]
tno
<sa
_`__``_``a`_`_aaaa`
! !
i\\\\\\\\[\\\\\\\[\\a///2/////////2/22///
i\^
da2/
BB<<<<777111,,,*/
i\^
na2/
RFGHJCDKLL=>>88+/
h\^
}qq
[`//"QRT$
1=>>8+2
j\^
sccy
\`2/"OQ
$%=>>*2
i\^
sccy
\a//"NO
66**
L=>(2
i\]~
rccy
\a//"WN
FTHI*++LL=(/
h\^|~
rccs
\`//'VW
RFTHJCDKLL)2
j\]x|~
rccp~
\_//'VV
QRFTHJCDKL(/
i\^wx|~pcccccb
\`//'UV
OQRFGHJCDK(/
i\]wwx|pcckrss
\a//0UU
NOQRSGHIJD(2
i\^vwwxpccr
\`///YU
WNOQRFTHIJ)/
j\]uvwwmccp
\`//9YY
VWNO5;*THI)2
j\]uuvwmccp
\a//9XY
VVWN
STH)2
i\]ouuvmccbbbbbs
\a//@XX0
RST)/
i\]oouulefffggkt
\`/2@ZXX:
;NPRF(/
h\]loouuvwwx|~
\_2/@ZZXXYYUUUVWNOPQ(/
i\]ffggkkqqqzzz{{{
\_//?MMMMEEEAAAA3345
i\\\\\\\\\\\\\\\\\\\`//&&&&&--&&&&-&&&&./
illlllllll
##"
nPh
_s-
>w+
3Zz
]ZZZZZZZZZZZWV-1---------1-
mV2.AHBC5D;<<(-
kV2.P:#
!!+=>(-
kV239
$=(-
{co
kV73@
GJ'
0<(-
^e~
xco
kV78@
OGJKD;*1
]d}~wca``
kV78F
OOGJKD*1
\dy}rch{
kV7EF
MNOGIK/1
\buyrcj
kV?EE
RR.#:I/-
[btuncfssv
kV?LE
&%"
9G41
]_ptqhhhjj
kV?LTE
@NO41
]_mptuy}~
lV6SUTTQQQRRN91
[WXXXYXXYXYYWV-)))))))))),,
uVh
_s-
F5><<==.
ECK2LPV.
E@J3MOU.
D?H31IT.
-,%
B;G1JKS.(
E9A011R.&#
E/4678:."&'
NQWhX^XXXe
rpq
t}~]
djklnoc
sgba`_f|
ux||||
# # #
#! #
#! #! #
# #
#gdc
# #! #
# # #
# #
# #
# # # #
! #
t5! #! #
lR! #
.Bu
mS! #
<Bv
lR! #
lR! #
d0_
lR! #
b0`
lR! #
`0_
lR! #
]1`
lR! #
[0_
lR! #
V0_
lR! #
U0_
lR! #
O0_
lR! #
M0_
lR! #
K0_
lR! #
F0_
lR! #
lR! #
lS! #
lR! #
lR! #
b;wi=ua=ua=ua=ua<u`=ua=ua<u`9d[qikunntnntnnunntnnunnunntpwyr
cVgdc
y]q
nkgdc
wYl
gdc
rP`
gdc
oJY
gdc
y|~$s
hJ[
rcgdc
4@egdc
5@fgdc
5@fgdc
4@egdc
5Afgdc
4@egdc
5@fgdc
5@fgdc
4@egdc
4@egdc
5@fgdc
5Afgdc
5@egdc
5@fgdc
BL@BM@BM@BL@BL@BL@BL@BM@CMABM@BL@BL@
#w\Rv\Rw]Sw\Rw\Rw\Sv\Rv\Rw\Rw]Sw]Sw]StYQ1-/
_s-
t6REE
F_s-
t6RDD
<_s-
t5REE
=^s,
t5RDE
=_s-
u6RDD
y0_
=_s-
=REE
t0_
=^s,
=REE
j0_
=_s-
=SEE
f0_
=_s-
=REE
[0_
>w+^
=^s,
=REE
=_s-
=SEE
<^s,
=SEE
_s-
;tcc
3ZzWo
vWj
pM\
XBe
4@e
?Ru
CXz
CXz
CYz
CXz
BXz
CXz
CY{
=_s-
|Xfdc
_s-
Zgec
_s-
Zfdc
_s-
Zfdc
y=z
^s-
Zfdc
^<y
_s-
Yfdc
>_s-
vVh
7<K
8<K
7<K
8<K
Policies
MS Shell Dlg
This setting enables driver caching to improve disk performance. This setting will be ignored and un-checked if enabled safely remove disk
Enable driver cache mode.
Note:
The setting will not take effect until you restart system
This setting enables remove disk safely. To disconnect disk from controller, click the Safely Remove Hardware icon in the taskbar notification area.
Enable safely remove disk.
VS_VERSION_INFO
StringFileInfo
040904e4
CompanyName
<Marvell>
FileDescription
Coinstaller
FileVersion
1.0.0.2
InternalName
hotplug.exe
LegalCopyright
2009 (c) <Marvell>. All rights reserved.
OriginalFilename
hotplug.exe
ProductName
driver feature policy
ProductVersion
1.0.0.2
VarFileInfo
Translation
Неудивительно, что результат не лишен мусора. Я собираюсь выделить только самые важные моменты.
Библиотека информации
Хотя информация об авторских правах не обновлялась с 2009 года, последний раз файл был изменен в октябре 2013 года в соответствии с его отметкой времени. Это подтверждается каталогом сборки, встроенным в файл:
d:\project\2013_10\magni_svn\windows\win\sys\amd64\mv91xxm.pdb
Расширение файла .pdb
расшифровывается как Program Database, собственный формат Microsoft, в котором хранится информация об отладке. На самом деле есть также строка msvcrt.dll
, что означает, что библиотека была скомпилирована с использованием некоторой версии Microsoft Visual C++.
В качестве примечания, они используют (d) Apache Subversion в качестве системы контроля версий программного обеспечения и версий.
Совместимость с Windows 8.x
Поскольку библиотека была обновлена в октябре 2013 года, разумно предположить, что она обеспечит совместимость с Windows 8 и, возможно, с Windows 8.1. Проверяя файл каталога mvs91xx.cat
, вот подробности, связанные с файлом библиотеки mvs91xx.dll
:
Tag 9B1349794EE18ECCCBBD7F38FEEA9D44CC42746E
Thumbprint algorithm sha1
Thumbprint 9b 13 49 79 4e e1 8e cc cb bd 7f 38 fe ea 9d 44 cc 42 74 6e
OSAttr 2:6.1,2:6.2,2:6.3
File mvs91xx.dll
OSAttr:2:6.0
OSAttr
указывает целевую версию Windows, требования подписи которой совместимы с пакетом драйверов. Значение атрибута указывает следующее:
- Значение
2
указывает, что файл каталога совместим с версиями операционной системы Windows на базе NT.
- Значение
6.0
указывает, что файл каталога совместим с Windows Vista.
Примечание. Если пакет драйверов совместим с несколькими версиями Windows, необходимо использовать отдельные параметры CATATTR
, чтобы указать атрибут OSAttr
для каждой версии Windows.
Источник: создание файла каталога для пакета драйвера не PnP
В этом случае значение OSAttr
включает три версии Windows для Windows: Windows 7 (6.1
), Windows 8 (6.2
) и Windows 8.1 (6.3
). Это означает, что пакет драйверов совместим с Windows 8/8.1, по крайней мере, на бумаге; Тем не менее панель политик недоступна в Windows 8.x. Виновата ли операционная система или файл библиотеки, я не знаю.
Функции реестра
Настройки драйвера обычно хранятся в реестре, а библиотека включает некоторые функции реестра Windows:
RegSetValueExA
RegQueryValueExA
RegCloseKey
В поисках связанных с политикой строк я наткнулся на DriverPolicySet
. Проведя обратный инжиниринг библиотеки, я подтвердил, что функции реестра действительно использовались, и что упомянутая выше строка была частью пути реестра, который либо читался, либо записывался.
Ручная настройка политики
Поиск "DriverPolicySet"
в Интернете дал несколько, но интересных результатов. В частности, пост на японской доске и ответ на русском форуме. Переведя и собрав кусочки информации, я смог получить более четкую картину - буквально.
Значение DriverPolicySet
представляет собой строку (REG_SZ
), которую можно установить в:
0
- отключить все политики.
1
- Включить только кэширование драйверов.
2
- Включить только безопасное удаление.
3
- Включить кэширование драйверов и безопасное удаление.
Обычно он хранится в следующем разделе реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\0001
замечания
Если значение реестра отсутствует, вам необходимо создать его самостоятельно.
Вы должны перезапустить систему, чтобы применить изменения.
{4D36E97B-E325-11CE-BFC1-08002BE10318}
- это GUID класса устройства, назначенный для контроллеров SCSI и RAID. Это определено в файле mvs91xx.inf
.
Конечная часть 0001
может немного отличаться в зависимости от количества доступных контроллеров. Например, это может быть 0000
или 0002
и т.д.