Windows Dependencies
WinDepends is a rewrite of the Dependency Walker utility, which for a long time was a "must-have" tool when it comes to Windows PE files analysis and building a hierarchical tree diagram of all dependent modules. Unfortunately, development of this tool stopped around the Windows Vista release, and since that time, Microsoft introduced a lot of new features "under the hood" of the loader that eventually broke Dependency Walker and made its use painful, especially on the newest Windows versions with tons of artificial DLLs, a.k.a. ApiSet contracts. Unfortunately, none of the existing "replacements" are even slightly comparable to the original in terms of implementation or features. That's why this project was born. It was in mind for many years but has never had enough time or will to be implemented until now.
The WinDepends compiled binaries include:
They can be found in the Release section of this repository.
No installation required. Copy the folder, run WinDepends.exe. To uninstall, close the client/server and delete files.
WinDepends supports a command-line interface for automation, scripting, and integration with other tools. The CLI mode is automatically activated when specific command-line switches are detected.
WinDepends.exe [options]| Option | Description |
|---|---|
-o, --output |
Output file path (default: input file with format extension) |
-f, --format |
Output format: json, csv, html, dot, text (default: json) |
-d, --depth |
Maximum dependency depth (default: from configuration) |
-q, --quiet |
Suppress console output |
-e, --exports |
Include export information (default: on) |
--no-exports |
Exclude export information |
-i, --imports |
Include import information (default: on) |
--no-imports |
Exclude import information |
--no-resolve |
Don't resolve API set names (default: from configuration) |
-k, --kernel |
Use kernel-mode search order |
--short-paths |
Use short file names instead of full paths (default: from configuration) |
-h, --help |
Show help message |
-v, --version |
Show version information |
Note: Many default values are read from the program configuration file. Use the GUI to configure these settings.
| Format | Description |
|---|---|
json |
Full structured JSON data with all module information |
csv |
Flat module list as comma-separated values |
html |
Interactive HTML report with collapsible dependency tree |
dot |
Graphviz DOT format for graph visualization |
text |
Plain text tree output |
WinDepends.exe C:\Windows\System32\notepad.exe -o notepad.json -f jsonWinDepends.exe myapp.exe -o report.html -f htmlWinDepends.exe C:\Windows\System32\ntoskrnl.exe -o ntoskrnl.json -f json -kWinDepends.exe module.dll -f dot -o dependencies.dotTo generate an image from DOT file:
dot -Tpng dependencies.dot -o dependencies.pngWinDepends.exe myapp.exe -o report.json -f json -qWinDepends.exe myapp.exe -o report.json -f json -d 3WinDepends.exe myapp.exe -o report.json -f json --no-exports --no-importsWinDepends.exe myapp.exe -o report.html -f html --short-pathsWinDepends.exe C:\Windows\System32\ntoskrnl.exe -o ntoskrnl.html -f html -k -d 5 --short-pathsWhen not in quiet mode, the CLI displays progress information:
WinDepends CLI v1.0.0.2511
Analyzing: C:\Windows\System32\notepad.exe
[*] Server has been started: WDEP/1.0 WinDepends.Core
Processing dependencies...
[1] Analyzing: ntdll.dll
[2] Analyzing: kernel32.dll
[3] Analyzing: kernelbase.dll
...
Exporting to Html: notepad.html
Export completed successfully. When no CLI-specific switches are provided, WinDepends runs in GUI mode. You can still pass a file path to open it directly:
WinDepends.exe C:\Windows\System32\notepad.exeIf you enjoy using this software and would like to help the authors maintain and improve it, please consider supporting us with a donation. Your contribution fuels development, ensures updates, and keeps the project alive.
BTC (Bitcoin): bc1qzkvtpa0053cagf35dqmpvv9k8hyrwl7krwdz84q39mcpy68y6tmqsju0g4
This is purely optional, thank you!~
MIT
(c) 2024 - 2026 WinDepends Project
No open issues yet, or sync has not completed.