https://github.com/hfiref0x/WinDepends Skip to content Navigation Menu Toggle navigation Sign in * Product + GitHub Copilot Write better code with AI + Security Find and fix vulnerabilities + Actions Automate any workflow + Codespaces Instant dev environments + Issues Plan and track work + Code Review Manage code changes + Discussions Collaborate outside of code + Code Search Find more, search less Explore + All features + Documentation + GitHub Skills + Blog * Solutions By company size + Enterprises + Small and medium teams + Startups By use case + DevSecOps + DevOps + CI/CD + View all use cases By industry + Healthcare + Financial services + Manufacturing + Government + View all industries View all solutions * Resources Topics + AI + DevOps + Security + Software Development + View all Explore + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Enterprise + Enterprise platform AI-powered developer platform Available add-ons + Advanced Security Enterprise-grade security features + GitHub Copilot Enterprise-grade AI features + Premium Support Enterprise-grade 24/7 support * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up Reseting focus You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} hfiref0x / WinDepends Public * Notifications You must be signed in to change notification settings * Fork 3 * Star 80 Windows Dependencies License MIT license 80 stars 3 forks Branches Tags Activity Star Notifications You must be signed in to change notification settings * Code * Issues 2 * Pull requests 0 * Actions * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Security * Insights hfiref0x/WinDepends master BranchesTags [ ] Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 10 Commits .github/ .github/ ISSUE_TEMPLATE ISSUE_TEMPLATE bin bin src src .gitattributes .gitattributes LICENSE LICENSE README.md README.md View all files Repository files navigation * README * MIT license WinDepends Windows Dependencies System Requirements * Windows 10/11 (reportedly working on Windows 8.1, but we do not officially support it, and ApiSet resolving will be unavailable) * .NET Desktop Runtime 8.0 * Administrative privilege is not required Overview 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 the mind for many years but has never had enough time or will to be implemented, until these days. [MainWindowConsent] Features * Scans any 32-bit or 64-bit Windows module (exe, dll, ocx, sys, etc.) and builds a hierarchical tree diagram of all dependent modules. For each module found, it lists all the functions that are exported by that module, and which of those functions are actually being called by other modules. Another view displays the minimum set of required files, along with detailed information about each file including a full path to the file, base address, version numbers, machine type, debug information, and more. * Support delay-load dlls, ApiSet contracts (schema version 6, Win10/11), bound import, Side-by-Side modules. * Support drag and drop, most recently used files list. * Support configuration, external viewer, external help command, module path resolution, search order and PE loader relocations settings. * C++ function name undecorating to provide human readable C++ function prototypes including function names, return types, and parameter types. * Ability to save current session into a file and restore it back in program. * Client-server architecture, client is a WinForms NET application providing GUI and server is a windowless C application responsible for parsing PE files. Missing features / Known issues * Program current state is BETA. Several features of original Dependency Walker are not yet available or were considered obsolete and not implemented (e.g. profiling). * MDI GUI mess has been discontinued, if you want to analyze several files at the same time you can launch another copy of program. * Help file is currently missing, we plan to move all documentation on a separate public repository and publish it as a PDF file. * Several functionally may not work as expected or be disabled due to beta state. * CLI version is not yet implemented, we are still not sure is it needed or not. * ARM binaries are not tested in native environment as we don't have it in a bare metal. * Some limitations comes from Windows OS support, for example we do not support ApiSet schema versions prior to Windows 10, because Windows 10 is a minimum supported OS. * If you found a bug, have a suggestion or want to do pull request - feel free to do so, we appreciate your input. Installation and Usage WinDepends repository contain directory named "bin": * WinDepends.exe - main GUI application (client) * WinDepends.Core.exe - windowless application (server) which is launched by client * PDB files for both client/server There are no specific installation requirements, just copy this folder somewhere on your computer (rename it if you wish) and run WinDepends.exe from it. Uninstallation is also simple - terminate client, server process and delete files. Documentation and Help * Will be located on https://github.com/hfiref0x/WinDepends.Docs Build and Notes * Build platform is a Microsoft Visual Studio 2022 with latest SDK installed. * Application (client) is written in C#, using Windows Forms and NET 8.0. * Server is written in C, with no special headers or SDK used. * Source code also include server test application (WinDepends.Core.Tests) and simple fuzzer (WinDepends.Core.Fuzz). We are not chasing the latest versions of frameworks, SDKs or language standards, so for example, if the .NET platform is updated, it will happen in the next LTS release (NET 10). License MIT Authors (c) 2024 WinDepends Project About Windows Dependencies Topics windows csharp dll dependency-walker Resources Readme License MIT license Activity Stars 80 stars Watchers 3 watching Forks 3 forks Report repository Releases 1 tags Languages * C# 71.1% * C 28.9% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.