There are many uses for Process Monitor, the former Sysinternals tool, now developed at Microsoft. One such use is to see which process or executable loaded a particular DLL – and what version it is.
First of all you can get Process Monitor from this link :
You can run the binary on either an x86 or x64 system. When you run it on an x64 system, an x64 .exe is actually spawned from inside the x86 version – which is quite neat.
The main interface looks like this :
You’ll see all sorts of useful information such as who the binaries belongs to, process ID’s, memory usage (private byes), CPU usage and so on.
You can get more information too, by enabling the lower pane, and choosing handles or DLL’s. This is what DLL’s looks like :
You can also find who loaded a particular DLL. For example, looking for EVRT.DLL gives you :
And if you look for EVSTGAPI.DLL you will see this :
Note: I clicked on the entry listed, and the lower pane gives some version information – more is available, if you right click the entry in the lower pane after closing the search, and bringing up the properties page.