All Projects → adamrehn → dll-diagnostics

adamrehn / dll-diagnostics

Licence: MIT license
Tools for diagnosing DLL dependency loading issues

Programming Languages

python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to dll-diagnostics

dlib
Dynamic loading library for C/C++
Stars: ✭ 19 (-20.83%)
Mutual labels:  dll
VoiceBridge
VoiceBridge - an AI-TOOLKIT Open Source C++ Speech Recognition Toolkit
Stars: ✭ 17 (-29.17%)
Mutual labels:  dll
Compiler-Principle
词法分析,LL(1) 文法分析,LR(1) 文法分析
Stars: ✭ 18 (-25%)
Mutual labels:  dll
PEDetour
modify binary Portable Executable to hook its export functions
Stars: ✭ 59 (+145.83%)
Mutual labels:  dll
ProcessInjector.NET
Learning Process Injection and Hollowing techniques
Stars: ✭ 23 (-4.17%)
Mutual labels:  dll
hexen-dll-injector
HEX-EN DLL Injector
Stars: ✭ 20 (-16.67%)
Mutual labels:  dll
Forsaken
One of the best Python3.9 obfuscators.
Stars: ✭ 94 (+291.67%)
Mutual labels:  dll
ScareCrow-CobaltStrike
Cobalt Strike script for ScareCrow payloads intergration (EDR/AV evasion)
Stars: ✭ 387 (+1512.5%)
Mutual labels:  dll
d-l-l
Simplified DLL config creator & handler
Stars: ✭ 27 (+12.5%)
Mutual labels:  dll
DllLoaderShellcode
Shellcode to load an appended Dll
Stars: ✭ 72 (+200%)
Mutual labels:  dll
blazor-lazy-loading
Automatic Lazy Loading support for Blazor (Server and WebAssembly)
Stars: ✭ 89 (+270.83%)
Mutual labels:  dll
RunDLL-NG
A better alternative to RunDLL32
Stars: ✭ 23 (-4.17%)
Mutual labels:  dll
Xamarin-iOS
PSPDFKit for iOS wrapper for the Xamarin platform.
Stars: ✭ 14 (-41.67%)
Mutual labels:  dll
DLL-INJECTOR
I created a dll injector I am going to Open source its Code. But remember one thing that is any one can use it only for Educational purpose .I again say do not use it to damage anyone's Computer.But one thing if you are using it for some good purpose like to help someone who really need help then I permit you to use it.
Stars: ✭ 14 (-41.67%)
Mutual labels:  dll
UniversalUnityHooks
A framework designed to hook into and modify methods in unity games via dlls
Stars: ✭ 78 (+225%)
Mutual labels:  dll
example-app
Example app showcasing fulls1z3's Angular libraries
Stars: ✭ 27 (+12.5%)
Mutual labels:  dll
Krypton-Toolkit-Suite-NET-Core
A update to Component factory's krypton toolkit to support .NET Framework 3.5 to .NET Core
Stars: ✭ 27 (+12.5%)
Mutual labels:  dll
Phobos
Ares-compatible C&C Red Alert 2: Yuri's Revenge engine extension
Stars: ✭ 123 (+412.5%)
Mutual labels:  dll
Inflame
User-mode Windows DLL injector written in Assembly language (FASM syntax) with WinAPI.
Stars: ✭ 63 (+162.5%)
Mutual labels:  dll
Standard-Toolkit
An update to Component factory's krypton toolkit to support .NET Framework 4.6.2 - 4.8.1 to .NET Core/.NET
Stars: ✭ 194 (+708.33%)
Mutual labels:  dll

DLL Diagnostic Tools

The dlldiag command-line tool provides functionality to assist in identifying the DLL dependencies of an application or library and diagnosing dependency loading issues. It is primarily intended for use when migrating existing applications to Windows containers, where traditional GUI-based tools are unavailable. Identifying the minimal set of dependencies for an application facilitates a workflow where the required DLL files can be copied from the mcr.microsoft.com/windows base image into the mcr.microsoft.com/windows/servercore base image, thus maximising application compatibility whilst maintaining the minimum possible image size.

Contents

Requirements and installation

The dll-diagnostics Python package requires the following:

You can install the package by running the following command:

pip install dll-diagnostics

If you don't need the package on your host system then you can download a prebuilt container image from Docker Hub to start using the dlldiag command inside a Windows container.

Usage

The dlldiag command-line tool provides the following subcommands:

  • dlldiag deps: this subcommand lists the direct dependencies for a module (DLL/EXE) and checks if each one can be loaded. Delay-loaded dependencies are also listed, but indirect dependencies (i.e. dependencies of dependencies) are not.

  • dlldiag docker this subcommand generates a Dockerfile suitable for using the dlldiag command inside a Windows container, allowing the user to optionally specify the base image to be used in the Dockerfile's FROM clause. This is handy when you want to extend an existing image of your choice, rather than simply extending the Windows Server Core image as the prebuilt images from Docker Hub do.

  • dlldiag graph this subcommand runs executable modules with an injected DLL that uses Detours to instrument calls to LoadLibrary() so the call hierarchy can be reconstructed. This is handy when you want to see which indirect dependencies are being loaded by an executable's direct dependencies or want to identify dependencies that are loaded programmatically at runtime.

  • dlldiag trace: this subcommand uses the Windows debugger to trace a LoadLibrary() call for a module (DLL/EXE) and provide detailed reports of the results. The trace makes use of the Windows kernel loader snaps feature to obtain fine-grained information, as discussed in Junfeng Zhang's blog post "Debugging LoadLibrary Failures". The trace captures information about both indirect dependencies and delay-loaded dependencies.

Legal

Copyright © 2019-2021, Adam Rehn. Licensed under the MIT License, see the file LICENSE for details.

Binary distributions of this package include parts of Detours in object form. Detours is Copyright (c) Microsoft Corporation and is licensed under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].