Analyse
Ich habe weder die gleiche Hardware, noch verwende ich Windows 8.x. Ich werde also statische Analysen bereitstellen .
Zeichenketten
Zuerst habe ich die 64-Bit- mvs91xx.dll
Bibliotheksdatei mit dem Dienstprogramm Strings durchsucht .
Strings scannt die von Ihnen übergebene Datei nur nach UNICODE- (oder ASCII-) Zeichenfolgen mit einer Standardlänge von 3 oder mehr UNICODE- (oder ASCII-) Zeichen.
Quelle: Zeichenfolgen
Hier ist die volle Ausgabe:
!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 $=(- ~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
Es überrascht nicht, dass das Ergebnis nicht frei von Müll ist. Ich werde nur die wichtigsten Bits hervorheben.
Bibliotheksinformationen
Während die Copyright-Informationen seit 2009 nicht aktualisiert wurden, wurde die Datei zuletzt im Oktober 2013 entsprechend ihrem Zeitstempel geändert. Dies scheint durch das in der Datei eingebettete Build-Verzeichnis bestätigt zu werden:
d:\project\2013_10\magni_svn\windows\win\sys\amd64\mv91xxm.pdb
Die .pdb
Dateierweiterung steht für Program Database, ein proprietäres Microsoft-Format, das Debugging-Informationen speichert. In der Tat gibt es auch eine msvcrt.dll
Zeichenfolge, was bedeutet, dass die Bibliothek mit einer Version von Microsoft Visual C ++ kompiliert wurde .
Als Randnotiz verwenden sie (d) Apache Subversion als Software-Versionierungs- und Revisionskontrollsystem.
Kompatibilität mit Windows 8.x
Da die Bibliothek im Oktober 2013 aktualisiert wurde, kann davon ausgegangen werden, dass sie mit Windows 8 und möglicherweise auch mit Windows 8.1 kompatibel sind. Wenn Sie die mvs91xx.cat
Katalogdatei überprüfen, finden Sie hier Details zu der mvs91xx.dll
Bibliotheksdatei:
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
Das
OSAttr
Attribut gibt die Windows-Zielversion an, deren Signaturanforderungen mit dem Treiberpaket kompatibel sind . Der Wert des Attributs gibt Folgendes an:
- Der Wert
2
gibt an, dass die Katalogdatei mit NT-basierten Versionen des Windows-Betriebssystems kompatibel ist.- Der Wert
6.0
gibt an, dass die Katalogdatei mit Windows Vista kompatibel ist.Hinweis Wenn das Treiberpaket mit mehreren Windows-Versionen kompatibel ist, müssen Sie
CATATTR
dasOSAttr
Attribut für jede Windows-Version mit separaten Optionen angeben .Quelle: Erstellen einer Katalogdatei für ein Nicht-PnP-Treiberpaket
In diesem Fall enthält der OSAttr
Wert drei NT-basierte Windows-Versionen: Windows 7 ( 6.1
), Windows 8 ( 6.2
) und Windows 8.1 ( 6.3
). Dies bedeutet, dass das Treiberpaket zumindest auf Papier mit Windows 8 / 8.1 kompatibel ist. Dennoch ist der Richtlinienbereich in Windows 8.x nicht verfügbar. Ob das Betriebssystem oder die Bibliotheksdatei daran schuld ist, würde ich nicht wissen.
Registrierungsfunktionen
Treibereinstellungen werden normalerweise in der Registrierung gespeichert, und die Bibliothek enthält einige Windows- Registrierungsfunktionen :
RegSetValueExA RegQueryValueExA RegCloseKey
Auf der Suche nach strengen Richtlinien stieß ich auf DriverPolicySet
. Durch das Reverse Engineering der Bibliothek bestätigte ich, dass die Registrierungsfunktionen tatsächlich verwendet wurden und dass die oben genannte Zeichenfolge Teil eines Registrierungspfads war, der entweder gelesen oder geschrieben wurde.
Manuelle Politikanpassung
Die Suche "DriverPolicySet"
im Internet ergab nur wenige, aber interessante Ergebnisse. Insbesondere ein Beitrag in einem japanischen Forum und eine Antwort in einem russischen Forum . Durch das Übersetzen und Zusammenstellen der Informationen konnte ich ein klareres Bild erhalten - buchstäblich.
Der DriverPolicySet
Wert ist eine Zeichenfolge ( REG_SZ
), die gesetzt werden kann:
0
- Deaktivieren Sie alle Richtlinien.1
- Nur die Zwischenspeicherung des Treibers aktivieren.2
- Nur sichere Entfernung aktivieren.3
- Aktivieren Sie die Zwischenspeicherung des Treibers und das sichere Entfernen.
Es wird normalerweise in dem folgenden Registrierungsschlüssel gespeichert:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\\0001
Bemerkungen
Falls der Registrierungswert nicht vorhanden ist, müssen Sie ihn selbst erstellen.
Sie müssen das System neu starten, um die Änderungen zu übernehmen.
ist die Geräte-Klassen- GUID, die SCSI- und RAID-Controllern zugewiesen ist. Es ist in der
mvs91xx.inf
Datei definiert .Der
0001
Endteil kann je nach Anzahl der verfügbaren Controller etwas unterschiedlich sein. Zum Beispiel könnte es stattdessen0000
oder0002
usw. sein.