awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
TheWover avatar

TheWover/donut

0
View on GitHub↗
4,461 stars·730 forks·C·bsd-3-clause·14 views

Donut

Donut is a toolset for loading and executing payloads in memory, featuring a position-independent shellcode generator, an in-memory payload injector, and a .NET assembly loader. It is designed to convert executable files and scripts into shellcode that can be executed within the memory space of a remote process without writing files to disk.

The project specializes in security evasion through memory-based patching and payload obfuscation using symmetric block ciphers and compression. It includes a remote payload stager to retrieve encrypted modules from HTTP or DNS servers during runtime, reducing the initial on-disk footprint.

The system covers a broad range of capabilities including reflective assembly loading into dedicated memory domains, host process enumeration for injection targets, and multi-format code export for integration into different programming languages. It also provides static and dynamic libraries to embed these code generation and management functions into external software projects.

Features

  • Executable-to-Shellcode Converters - Converts executables and scripts into position-independent shellcode for in-memory execution without file system access.
  • Shellcode Generators - Generates architecture-specific shellcode targeting x86, x64, or both architectures simultaneously.
  • .NET Assembly Shellcode Generators - Converts .NET assemblies into position-independent shellcode for in-memory execution.
  • Obfuscated - Generates shellcode with encryption and compression for stealthy delivery and evasion of static analysis.
  • Process Injection Payloads - Loads generated shellcode into a target process to execute a .NET assembly entirely from memory.
  • Hash-Based API Resolvers - Provides runtime Windows API resolution via hashed function names for position-independent shellcode execution.
  • Unmanaged Process Hostings - Uses the Unmanaged CLR Hosting API to load the Common Language Runtime into a process that does not already host it.
  • AMSI Bypasses - Patches Antimalware Scan Interface and Windows Lockdown Policy at runtime to prevent detection of dynamically executed code.
  • In-Memory Payload Execution - Loads the .NET CLR into unmanaged processes and executes assemblies entirely from memory.
  • CLR Hosting Loaders - Loads the .NET CLR into unmanaged processes to execute managed assemblies entirely from memory.
  • In-Memory Process Injection - Loads shellcode into a remote process to execute .NET assemblies, EXEs, DLLs, and scripts from memory.
  • Managed Assembly Loaders - Loads and executes .NET assemblies directly from memory in isolated AppDomains within unmanaged processes.
  • AMSI and WLDP Patchers - Patches AMSI and WLDP in memory at runtime to prevent detection of dynamically executed code.
  • Security Software Evasion - Bypasses AMSI and WLDP protections at runtime to prevent detection of dynamically executed code.
  • Hash-Based API Resolutions - Resolves Windows API addresses at runtime using hashed function names to enable position-independent execution.
  • AppDomain Isolations - Uses .NET AppDomains to isolate payloads and enable full memory unloading after execution.
  • .NET Assembly Loaders - Loads and executes .NET assemblies in isolated memory domains without disk access or standard CLR paths.
  • Payload Compression Algorithms - Compresses input files with aPLib or Windows compression algorithms before shellcode generation.
  • Data Compression Algorithms - Compresses payload data using aPLib, LZNT1, Xpress, or Xpress Huffman algorithms to reduce size.
  • Multi-Format Code Exports - Exports generated shellcode as C, Ruby, Python, PowerShell, Base64, C#, or hexadecimal source code.
  • PE/COFF Loaders - Loads unmanaged EXE and DLL files from memory using a custom PE loader that handles delayed imports and TLS.
  • DNS Shellcode Execution - Stores the generated module on an HTTP or DNS server so the loader fetches and executes it remotely.
  • Multi-Format Shellcode Exporters - Exports generated shellcode as C, Ruby, Python, PowerShell, Base64, C#, or hexadecimal source code.
  • Programmatic Interfaces - Provides a C library API and a command-line generator so external tools can produce shellcode dynamically on a server or agent.
  • Shellcode Payload Compressors - Compresses shellcode payloads using aPLib, LZNT1, Xpress, or Xpress Huffman algorithms.
  • Loader Obfuscators - Randomizes strings and optionally encrypts the loader to evade signature-based detection.
  • Shellcode - Protects generated payloads with 128-bit symmetric encryption using the Chaskey block cipher.
  • Compressors - Compresses shellcode payloads using aPLib, LZNT1, or Xpress algorithms to reduce module size.
  • Module Encryptors - Encrypts generated shellcode modules using Chaskey block cipher with random keys.
  • In-Memory Payload Encryptors - Encrypts .NET assemblies in memory with Chaskey cipher and erases decrypted copies after loading.
  • Scripting Language Executions - Runs VBScript and JScript files in memory using the IActiveScript interface with minimal Windows Script Host support.
  • Remote Payload Stagers - Downloads an encrypted Donut Module from a specified URL at runtime instead of embedding it in the shellcode.
  • Symmetric Encryption - Protects payload modules with 128-bit Chaskey symmetric block cipher encryption and random keys.
  • Payload Hosting - Embeds a download URL in the shellcode so the .NET assembly is fetched from a remote server at runtime.
  • CLR Runtime Version Selectors - Selects .NET CLR runtime versions for loading, with fallback to available versions.
  • File Format Analysis - Generates shellcode to load .NET assemblies and PE files from memory.
  • Initial Access Frameworks - In-memory execution of various file types and assemblies.
  • Payload Development - In-memory execution of various file types and assemblies.
  • Shellcode Injection - Generates position-independent shellcode from .NET assemblies and PE files.
  • Windows Post Exploitation - Executes arbitrary code in-memory to avoid writing files to disk.

Star history

Star history chart for thewover/donutStar history chart for thewover/donut

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Donut

Similar open-source projects, ranked by how many features they share with Donut.
  • byt3bl33d3r/offensivenimbyt3bl33d3r avatar

    byt3bl33d3r/OffensiveNim

    3,033View on GitHub↗

    OffensiveNim is a red teaming framework and post-exploitation toolkit developed in Nim. It provides a collection of low-level primitives and a Windows API wrapper designed for offensive security operations, including malware development and shellcode loading. The project focuses on evasion and obfuscation through techniques such as API unhooking, direct system calls, and anti-debugging mechanisms. It features diverse payload delivery methods, including reflective binary loading, the execution of .NET assemblies via CLR hosting, and various shellcode injection techniques using fibers, COM obje

    Nim
    View on GitHub↗3,033
  • trickster0/offensiverusttrickster0 avatar

    trickster0/OffensiveRust

    2,984View on GitHub↗

    OffensiveRust is a red team toolkit and malware development kit written in Rust. It serves as an evasion framework and post-exploitation library, providing a collection of offensive security primitives and a Windows API wrapper for interacting with low-level system functions and undocumented APIs. The project focuses on bypassing security software through direct system calls, memory obfuscation, and stealthy payload execution. It implements techniques to defeat static binary analysis via compile-time string encryption and payload obfuscation, while avoiding detection using parent process ID s

    Rust
    View on GitHub↗2,984
  • samratashok/nishangsamratashok avatar

    samratashok/nishang

    9,951View on GitHub↗

    Nishang is a PowerShell-based offensive security framework designed for red teaming and penetration testing on Windows targets. It functions as a post-exploitation toolkit and payload generator to automate attacks and manage remote targets. The project provides specialized capabilities for bypassing security controls, such as disabling the Antimalware Scan Interface and employing in-memory execution to avoid disk-based detection. It includes a variety of stealthy command and control mechanisms, utilizing non-standard channels like DNS TXT records, ICMP traffic, and webmail for communication a

    PowerShellactivedirectoryhackinginfosec
    View on GitHub↗9,951
  • malwaredllc/byobmalwaredllc avatar

    malwaredllc/byob

    9,478View on GitHub↗

    This project is a post-exploitation framework and command and control platform designed for security research and penetration testing. It functions as a remote access tool consisting of a central command server and encrypted executable payloads that establish reverse shell connections. The system utilizes a web-based dashboard for multi-client administration, allowing for remote host monitoring and direct shell access through an in-browser terminal. It generates cross-platform, encrypted binaries that employ a multi-stage delivery chain and a key exchange mechanism to secure communications.

    Python
    View on GitHub↗9,478
See all 30 alternatives to Donut→

Frequently asked questions

What does thewover/donut do?

Donut is a toolset for loading and executing payloads in memory, featuring a position-independent shellcode generator, an in-memory payload injector, and a .NET assembly loader. It is designed to convert executable files and scripts into shellcode that can be executed within the memory space of a remote process without writing files to disk.

What are the main features of thewover/donut?

The main features of thewover/donut are: Executable-to-Shellcode Converters, Shellcode Generators, .NET Assembly Shellcode Generators, Obfuscated, Process Injection Payloads, Hash-Based API Resolvers, Unmanaged Process Hostings, AMSI Bypasses.

What are some open-source alternatives to thewover/donut?

Open-source alternatives to thewover/donut include: byt3bl33d3r/offensivenim — OffensiveNim is a red teaming framework and post-exploitation toolkit developed in Nim. It provides a collection of… trickster0/offensiverust — OffensiveRust is a red team toolkit and malware development kit written in Rust. It serves as an evasion framework and… samratashok/nishang — Nishang is a PowerShell-based offensive security framework designed for red teaming and penetration testing on Windows… malwaredllc/byob — This project is a post-exploitation framework and command and control platform designed for security research and… hackplayers/evil-winrm — Evil-WinRM is a penetration testing tool and interactive remote shell designed for managing and executing commands on… balloonwj/cppguide — CppGuide is a curated collection of educational resources and practical guides focused on C++ server development,…