How lucasg/dependencies works
Dependencies is a Windows DLL dependency analyzer, with both a GUI and a CLI. Users open a PE file; the application inspects its imports, searches for referenced modules, and presents dependency details including imports, exports, and resolution status. The graph also preserves documented API-set, side-by-side manifest, symbol-demangling, and CLR assembly-analysis capabilities. The excerpts show several GUI, cache, and search relationships; where implementation wiring for documented features was not shown, their connections are omitted rather than inferred.
Main entry points: DependencyWindow.xaml.cs Dependency window · BinaryCache.cs Binary cache · Program.cs CLI analyzer · App.xaml.cs GUI startup
Components 18
Entry points
- GUI startup
DependenciesGui/App.xaml.cs - CLI analyzer
Dependencies/Program.cs
Dependency analysis
- Binary cache
DependenciesLib/BinaryCache.cs - Module search
DependenciesLib/FindPeModule.cs - SxS manifests
DependenciesLib/SxsManifest.cs
PE inspection
- Managed PE bridge
ClrPhlib/src/managed/PE.cpp - PE analysis library
ClrPhlib/src/managed/Phlib.cpp - API-set support
ClrPhlib/include/ApiSet.h - Symbol provider
ClrPhlib/src/managed/PhSymbolProvider.cpp - Symbol demangler
ClrPhlib/src/unmanaged/demangle.cpp - CLR references
Dependencies/Program.cs
Results and settings
- Dependency window
DependenciesGui/DependencyWindow.xaml.cs - Module model
DependenciesGui/Models/ModuleInfo.cs - Import display
DependenciesGui/Models/PeImport.cs - Export display
DependenciesGui/Models/PeExport.cs - User settings
DependenciesGui/Settings.cs - Setting bindings
DependenciesGui/Helpers/SettingBindingHandler.cs
Other components
- Developer
Connections 23
- Developer → GUI startup: opens file
README.md - GUI startup → Dependency window: opens window
DependenciesGui/App.xaml.cs - Dependency window → SxS manifests: loads manifest entries
DependenciesGui/DependencyWindow.xaml.cs - Dependency window → Binary cache: loads binaries
DependenciesGui/DependencyWindow.xaml.cs - Dependency window → Module model: builds module tree
DependenciesGui/DependencyWindow.xaml.cs - Module model → GUI startup: loads PE binary
DependenciesGui/Models/ModuleInfo.cs - GUI startup → Binary cache: initializes cache
DependenciesGui/App.xaml.cs - Binary cache → SxS manifests: gets SxS entries
DependenciesLib/BinaryCache.cs - Module search → SxS manifests: checks manifest entries
DependenciesLib/FindPeModule.cs - Binary cache → Import display: checks imports
DependenciesLib/BinaryCache.cs - Binary cache → Export display: checks exports
DependenciesLib/BinaryCache.cs - Setting bindings → User settings: reads settings
DependenciesGui/Helpers/SettingBindingHandler.cs - Import display → Setting bindings: inherits bindings
DependenciesGui/Models/PeImport.cs - Export display → Setting bindings: inherits bindings
DependenciesGui/Models/PeExport.cs - Module model → Setting bindings: uses bindings
DependenciesGui/Models/ModuleInfo.cs - Developer → CLI analyzer: runs analysis
README.md - CLI analyzer → SxS manifests: parses manifests
Dependencies/Program.cs - CLI analyzer → Managed PE bridge: inspects PE files
README.md - Managed PE bridge → PE analysis library: uses PE processing
README.md - Dependency window → API-set support: resolves API sets
- Import display → Symbol provider: displays symbol names
- Symbol provider → Symbol demangler: demangles symbols
- CLI analyzer → CLR references: enumerates CLR references
README.md