On that special day, jason, (me@privacy.net) said...
"Dependency Walker version 2.0 adds application profiling, a technique
used to watch a running application to see what modules it loads. This
allows Dependency Walker to detect dynamically loaded modules that are
not necessarily reported in any on the import tables of other modules."
So I'm curious how effective programs like CLNSYS would be if they don't
include application profiling. Any insight on this?
Sorry, but I can't really tell. Until now, I had believed that
"dynamical loading" does mean, a dll file isn't loaded at the start time
of a given application, but only whern it is really needed, and that the
reference to the dll which is meant to be loaded only when needed, is
still stored in the exe file of the application. So, if you scan an
exefile for dll and vbx entries, you will still find these, be them
loaded at once or later on.
Of course, any given loaded module/dll/vbx may load more related
libraries, which again would have to be scanned for, and several of the
most basic modules of Windows are referencing each other, so if you
aren't careful enough, using the method described above, might cause the
program to track the references in a never ending loop.
Why should a program only check for modules that are loaded, while the
application is running? It doesn't make much sense.
Think of Office. You open word, and write a letter, and have Dependency
Walker log, what Word is calling for. Fine. But by now, Dependency
Walker has listed only *part* of what Word really needs.
Imagine that at the next time, you might open Word and use it to create
a Children's Birthday Invitation (as you don't have Powerpoint), and of
course insert some pictures, and print in landscape mode. Suddenly, Word
uses a very different set of libraries.
If you had relied on the information given by "Word used only these
libraries for the letter", and had deleted all the rest, some of the
functions which are called by changing the apperance of the text,
inserting graphics, and printing in landscape, might not work, because
the supporting libraries had been removed. This is surely not what you
want.
I wouldn't rely on the information what is *currently* loaded. It isn't
worth risking the system's integrity.
Gabriele Neukam
(e-mail address removed)