dll clsid

¿Cómo encontrar una DLL dado un CLSID?



(3)

¿No puedes simplemente buscarlo en el registro usando regedit y buscar la ruta binaria?

Tengo una situación en la que una DLL administrada llama a algunas DLL no administradas. Conozco el CLSID de la DLL no administrada, ¿hay alguna forma de averiguar qué archivo binario contiene ese CLSID?


Normalmente, puedes ir a:

HKEY_LOCAL_MACHINE / SOFTWARE / Classes / CLSID / "GUID"

Y encuentre una clave llamada "InProcServer32" por ejemplo y habrá el valor predeterminado que tiene la DLL. Esta es una manera simple de hacerlo.


Según la respuesta de BobbyShaftoe, podemos construir un script vbs simple que lea ese registro para nosotros:

Dll_RegPath = "HKEY_CLASSES_ROOT/CLSID/<GUID>/InProcServer32/"

Pegue lo siguiente en "test.vbs"

Sub Main '' used to find location of "System.Collections.ArrayList" progid dll Const csGUID = "{6896B49D-7AFB-34DC-934E-5ADD38EEEE39}" MsgBox srGetDllPathByGUID(csGUID) End Sub Function srGetDllPathByGUID( sGUID ) Const csRegPath = "HKEY_CLASSES_ROOT/CLSID/<GUID>/InProcServer32/" Dim oShell: Set oShell = CreateObject("WScript.Shell") Dim sReg: sReg = Replace( csRegPath, "<GUID>", sGUID ) '' build str srGetDllPathByGUID = oShell.RegRead(sReg) Set oShell = Nothing '' clean up End Function Call Main

También puede encontrar ProgId por:

ProgID_RegPath = "HKEY_CLASSES_ROOT/CLSID/<GUID>/ProgID/"