1

Is there a good way to compare the DLLs loaded between two machines running the same app. (And to replicate the process between N other machines, two at a time?)

Background: I am trying to track down a configuration/setup issue. It's the age-old, DLL-hell-type problem where an app will run on one machine but not on another.

I have eliminated our installer as an issue; it's stable but there are differences between the target systems. Different Windows flavors, MDAC versions etc.

I have tried: exporting EXE snapshots with Proc Explorer to a delimited file and using Excel to do the comparison. But this is very time-consuming and error prone. (I'm not ruling out Excel as a possibility, i just don't know enough tricks to use it to my ends.)

(I initially posted this question on StackOverflow but it resulted in a tumbleweed. Hoping for better luck here. Thanks!)

womble
  • 95,029
  • 29
  • 173
  • 228
Paul Sasik
  • 231
  • 1
  • 10

1 Answers1

1

I don't have time to write a whole script for you, but you could call handle.exe -p process_name.exe, grep for the DLL(s) that you care about (maybe all of them), and then run sigcheck against each of them. Sigcheck has different options, including filehashing if you can't depend on the reported version information.

handle and sigcheck are also from SysInternals.

mfinni
  • 35,711
  • 3
  • 50
  • 86
  • What will handle.exe give me that process explorer doesn't? – Paul Sasik Oct 22 '10 at 19:05
  • handle.exe is a CLI tool, thus scriptable. Same with sigcheck. I described the flow in my answer. Your tool for pattern matching will depend on the scripting language you choose - you could definitely do this with Perl or PS, probably without even needing intermediate files. I wouldn't try this in BAT, but VBS would probably do well too. – mfinni Oct 22 '10 at 19:42
  • i get it. Thanks for the explanation. i will try that approach. – Paul Sasik Oct 22 '10 at 19:50