Dependencies
is a rewrite of the legacy software Dependency Walker which was shipped along Windows SDKs, but whose developement stopped around 2006.
Dependencies
can help Windows developers troubleshooting their dll load dependencies issues.
- v1.7 :
- Add CLI tool "dependencies.exe"
- v1.6 :
- Add appx packaging
- v1.5 :
- Support of Sxs parsing
- Support of api set schema parsing
- API and Modules list can be filtered
- v1.0 -- Initial release
NB : due to limitations on /clr compilation, Dependencies
needs Visual C++ Redistributable installed to run properly.
Dependencies
is currently shipped as a binary (no installer present). Just uncompress the archive and click on it.
Since the binary is not signed, SmartScreen
might scream at runtime. Dependencies
also bundle ClrPhTester.exe
, a dumpbin-like executable used to test for non-regressions.
Since v1.6
, Dependencies is also packaged as an appx package (the Windows equivalent of a .deb
file) which can be installed locally. However, you also need to add the test certificate DependenciesAppx_TemporaryKey.cer
to your cert hive.
Dependencies
currently does not recursively resolve child imports when parsing a new PE since it can be really memory-hungry to do so ( it can over a GB even for "simple" PEs ). This behaviour can be overriden (app-wide) via a property located in "Options->Properties->Tree build behaviour".
Tree build behaviours available :
ChildOnly
(default) : only process PE child imports and nothing beyond.RecursiveOnlyOnDirectImports
: do not process delayload dlls.Recursive
: Full recursive analysis. You better have time and RAM on your hands if you activate this setting :
At the moment, Dependencies
recreates features and "features" of depends.exe
, which means :
- Only direct, forwarded and delay load dependencies are supported. Dynamic loading via
LoadLibrary
are not supported (and probably won't ever be). - Support of api set schema redirection since 1.5
- Checks between Api Imports and Exports.
- Minimal support of sxs private manifests search only.
Special thanks to :
- ProcessHacker2 for :
phlib
, which does the heavy lifting for processing PE informations.peview
, a powerful and lightweight PE informations viewer.
- Dragablz a C#/XAML library which implement dockable and dragable UI elements, and can recreate the MDI programming model in
WPF
. - @aionescu, @zodiacon and Quarkslab for their public infos on ApiSets schema.
- Thomas levesque's blog which pretty much solved all my
WPF
programming issues. HisAutoGridSort
is used in this project - Venkatesh Mookkan for it's
FilterControl
for ListView used in this project - demumble for demangling GCC symbols on Windows