Load custom security tools into memory while avoiding detection by antivirus and monitoring software.
Test how well endpoint detection systems catch non-standard code loading techniques.
Build red team tooling that needs to run code on Windows without leaving traces in the module list.
Research Windows internals like structured exception handling and thread-local storage callbacks.
| 28zaaky/shdwldr | codemagic-ci-cd/codemagic-patch | division-36/z-jail | |
|---|---|---|---|
| Stars | 25 | 25 | 25 |
| Language | C | C | C |
| Setup difficulty | hard | hard | moderate |
| Complexity | 5/5 | 4/5 | 3/5 |
| Audience | developer | developer | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Requires a Linux environment with MinGW-w64 cross-compilation toolchain and understanding of Windows internals for proper usage.
ShadowLdr is a reflective DLL loader for 64-bit Windows. A DLL is a package of code that programs load at runtime. Normally, Windows handles this loading step automatically through its built-in loader. ShadowLdr skips that built-in loader and maps a DLL directly from memory instead. This matters for security tools and offensive security work, where avoiding the normal loading process helps evade detection. The project is written in C and built for the x64 architecture only. The loader uses several techniques to stay stealthy. It resolves Windows API functions using hash-based lookups instead of storing readable function names, which avoids leaving plaintext strings in the binary. It uses direct system calls through a combination of approaches called Hell's Gate, Halos Gate, and Tartarus Gate, including logic to recover from hooked system call stubs. It sets memory permissions per section, runs thread-local storage callbacks and slot allocation before the DLL's main entry point, and registers exception handling tables for x64 structured exception handling. It also includes bypasses for AMSI and ETW, two Windows security monitoring features, and erases the DLL header after loading. Building the project requires a cross-compilation toolchain targeting Windows from a Linux environment. The README provides compiler commands using the MinGW-w64 toolchain. A specific file alignment flag is required so that the DLL can run from a raw memory buffer using RIP-relative addressing. The usage example shows allocating executable memory, copying a raw DLL into it, and calling an exported reflective loader function to map and initialize it. The README notes some limitations. It works only on x64 and does not add an entry to the loaded module list, which is intentional for stealth. Module stomping is disabled because certain Windows behavior on version 10 and later would trigger the DLL entry point prematurely. A debug export contains runtime telemetry like system service numbers and allocation methods, and should be removed for production use. The full README is longer than what was shown.
A tool that loads code packages into memory on Windows without using the normal system loader, designed to avoid detection by security monitoring tools. Built for 64-bit Windows only.
Mainly C. The stack also includes C, MinGW-w64, Windows x64.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.