Come posso sapere quale programma è installato o sta usando un file DLL specifico?


9

Ho un file DLL nella directory SYSTEM32 di un server, di cui non sono sicuro di aver effettivamente bisogno.

Google mi ha detto a cosa serve normalmente, ma il software non è mai stato installato su questo sistema. Tuttavia, ritengo possibile che uno degli altri prodotti installati sul server abbia incluso (e quindi, presumaby, richiederà) il file.

Ho cercato nel registro il nome del file e anche alcune stringhe che ho trovato nei metadati del file e non sono riuscito a trovare nulla di informativo. (Anche se la chiave ACMru ha attirato la mia attenzione, fino a quando non ho scoperto a cosa serve .)

C'è qualcos'altro che posso fare, per far sì che il sistema stesso mi dica quale programma ha installato la DLL e / o quali programmi installati (se presenti) lo userebbero?

NOTA: i suggerimenti degli strumenti sono utili, ma non installerò o eseguirò alcun software aggiuntivo su questo sistema. Ho bisogno di lavorare con tutto ciò che è disponibile su un'installazione predefinita di Server 2003.

Risposte:


5

Verificherei la data in cui è stato inserito nel sistema e lo confronterei con altri file nel sistema per ottenere indizi. La ricerca dovrebbe consentire di effettuare ricerche nell'intero sistema per data.

Inoltre, pubblicare qui il nome del file consentirebbe ad alcuni qui che potrebbero averne familiarità di identificarlo per te.


Grazie. Potrei pubblicare il nome del file in un'altra domanda. Volevo che questo fosse generico in modo da ottenere risposte che potessero essere utilizzate per qualsiasi file DLL.
Iszi,

4

Potresti potenzialmente esaminare ogni file .MSI nella cartella% SystemRoot% \ Installer. Tutti i (?) Programmi installati tramite il programma di installazione di Windows aggiungeranno qui il loro MSI in modo che possano essere disinstallati in un secondo momento. La cartella ha generalmente un sacco di cose. Se / Una volta trovata la DLL tra quella miriade di pacchetti MSI, dovrai mappare il pacchetto con un nome ben definito.

Per decompilare i file msi utilizzando uno script, puoi provare a utilizzare questo strumento VBS http://www.hanselman.com/blog/HowToListAllTheFilesInAnMSIInstallerUsingVBSciript.aspx oppure puoi provare un programma chiamato MSIDiff (che non ho mai usato) http: //dennisbareis.com/msidiff.htm . Naturalmente, considerando i vincoli di non dover installare strumenti, questi ultimi non dovranno funzionare a tale riguardo. Il primo sarebbe se cscript è installato.

Quest'ultimo strumento potrebbe eseguire la mappatura del nome del pacchetto per te senza ricorrere alla ricerca manuale nel registro del nome file GUI o MSI appropriato. Il primo strumento può essere modificato per scaricare il nome del pacchetto se sapessi quale tabella / colonna fare riferimento (non lo so).

Lo script VBS esamina semplicemente il file MSI dal punto di vista del database. Il lavoro chiave viene svolto con: database.OpenView ("SELECT FileName FROM File").


Non è molto costoso farlo, come equivale a installarli tutti? Sul mio Windows 8 quelli sono 412 elementi, sul mio Windows 7 quelli sono 559 e penso che avesse un importo uguale. Inoltre, il file potrebbe non provenire da msiun'installazione ...
Tamara Wijsman,

Sì, è costoso, ma per le situazioni in cui si desidera conoscere la proprietà senza avere la lungimiranza di eseguire uno snapshot del sistema prima e dopo, ciò può fornire alcune informazioni. Puoi anche automatizzare la funzione di decompilazione e confronto (dopo tutto è solo uno script vbs). Sono d'accordo che non è una soluzione perfetta poiché non tutti i pacchetti sono installati tramite MSI, ma potresti essere fortunato. Come hai detto, ce ne sono molti, quindi è probabile che il file sia passato in quel modo.
logicalscope,

Mi chiedo se ci sono strumenti che potrebbero semplicemente guardare all'interno dei file MSI piuttosto che decompilarli / decomprimerli. Ad ogni modo, in un'altra nuova domanda fatta dall'OP stiamo parlando di un file che è già sui nostri sistemi dal momento dell'installazione ...
Tamara Wijsman,

Tom, sono abbastanza sicuro che questo vbs semplicemente esamina l'MSI dalla vista del database. L'MSI è semplicemente un db. Questo strumento utilizza SQL per estrarre i nomi di file dalla tabella appropriata. Non "decompila" di per sé e avrei dovuto specificarlo nel mio post. Revisionerò.
logicalscope,

1

Process Monitor può farlo per te. Basta filtrare in base al nome della DLL e quando un programma tenta di caricarlo, verrà visualizzata una voce che menziona quale processo sta cercando e / o accedendo alla DLL citata.

Dovresti anche provare a fare un registro di avvio (abilita la registrazione di avvio nel menu, quindi riavvia e riapri il monitor di processo) che è necessario per catturare programmi e servizi che lo caricano all'avvio.


Che dire di eventuali programmi inattivi? Sembra che dovrei aprire tutti i programmi sospetti sul computer e fare attenzione a Process Monitor.
Iszi,

@Iszi: come menzionato in chat, enumerarli o i loro installer richiederà molto tempo. O monitorare passivamente come detto, attivamente con Process Explorer. Oppure cerca come indicato music2myear, che può essere facilmente eseguito con Cerca tutto.
Tamara Wijsman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.