Como posso descobrir qual programa está instalado ou está usando um arquivo DLL específico?

9

Eu tenho um arquivo DLL no diretório SYSTEM32 de um servidor, que não tenho certeza se realmente preciso.

O Google me disse para que é normalmente usado, mas o software nunca foi instalado neste sistema. Ainda assim, considero possível que um dos outros produtos instalados no servidor possa ter incluído (e, portanto, presumaby, exigirá) o arquivo.

Eu fiz uma pesquisa no Registro para ver o nome do arquivo, e também para algumas strings que encontrei nos metadados do arquivo, e não consegui mostrar nada informativo. (Embora a tecla ACMru tenha chamado minha atenção, até que eu descobri o que é para .)

Há mais alguma coisa que eu possa fazer, para obter o sistema em si para me dizer qual programa instalou a DLL e / ou quais programas instalados (se qualquer um) usaria isso?

NOTA: Sugestões de ferramentas são boas, mas não instalarei nem executarei nenhum software adicional neste sistema. Eu preciso trabalhar com o que estiver disponível em uma instalação padrão do Server 2003.

    
por Iszi 22.12.2011 / 22:33

3 respostas

5

Eu verificaria a data em que ele foi colocado no sistema e compararia isso com outros arquivos no sistema para obter dicas. A pesquisa deve permitir que você pesquise todo o sistema por data.

Além disso, postar o nome do arquivo aqui permitiria que alguns aqui que possam estar familiarizados com ele o identifiquem para você.

    
por 22.12.2011 / 22:48
4

Você poderia examinar cada arquivo .MSI na pasta% SystemRoot% \ Installer. Todos os programas (?) Que são instalados através do instalador do Windows adicionarão seu MSI aqui para que possam ser UN instalados mais tarde. A pasta geralmente tem uma tonelada de coisas. Se / Depois de encontrar a dll entre esses pacotes de MSI, você terá que mapear o pacote de volta para um nome bem definido.

Para descompilar os arquivos msi usando um script, você pode tentar usar este link da ferramenta VBS ou pode tente um programa chamado MSIDiff (que eu nunca usei) link . É claro, considerando as limitações de não ter que instalar ferramentas, o último não será necessário nesse sentido. O primeiro seria se o cscript estivesse instalado.

A última ferramenta pode fazer o mapeamento do nome do pacote sem recorrer manualmente ao registro para obter o nome de arquivo GUID ou MSI apropriado. A primeira ferramenta pode ser modificada para despejar o nome do pacote se você souber qual tabela / coluna deve ser referenciada (eu não sei).

O script VBS simplesmente examina o arquivo MSI de uma perspectiva de banco de dados. O principal trabalho é feito com: database.OpenView ("SELECT FileName FROM File").

    
por 22.12.2011 / 23:27
1
O

Process Monitor pode fazer isso por você. Basta filtrar pelo nome da DLL e, quando um programa tentar carregá-la, uma entrada mencionará qual processo está procurando e / ou acessando a DLL que você mencionou.

Você também deve tentar fazer um log de inicialização (ative o log de inicialização no menu, reinicie e abra o monitor de processo novamente), o que é necessário para capturar programas e serviços que o carreguem durante a inicialização.

    
por 22.12.2011 / 22:52