From ec7b4337cea24ac9e13c97ed0e04ec0bc990dbfb Mon Sep 17 00:00:00 2001 From: "(Havox)" <135835548+AbishekPonmudi@users.noreply.github.com> Date: Fri, 10 Jul 2026 13:14:07 -0700 Subject: [PATCH] Update README.md --- README.md | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 88f259a..99038d0 100644 --- a/README.md +++ b/README.md @@ -2,20 +2,30 @@ **Modular Windows loader using C++** -For **[usage](#usage)** and **[testing / demo](#demo)**. +
+ +

+ + + +

+ +
+ +For Workaround Check -> **[Building](#Building)**, **[usage](#usage)** and **[testing / demo](#demo)**. --- ## Overview -**Dynloader** is a research-oriented Windows loader for studying how payload is delivered, staged, and executed in both **local** and **remote** process contexts. The current version supports shellcode staging only — planned work is under **[Planned features](#planned-features)**. +**Dynloader** is a research-oriented Windows loader for studying how payload is delivered, staged, and executed in both **local** and **remote** process contexts, the currect verison support only shellcode staging, Planned more implementation -> check out **[Planned features](#Planned-features)**. -It can: +**It can:** -- Load shellcode from a local `.bin` file -- Fetch shellcode **filelessly** over HTTP (optional AES-256-CBC at runtime) -- Inject into a target by **PID** or **process name** -- Spawn a missing process **headless** (suspended + hidden), inject, then resume +> - Load shellcode from a local `.bin` file +> - Fetch shellcode **filelessly** over HTTP (optional AES-256-CBC at runtime) +> - Inject into a target by **PID** or **process name** +> - Spawn a missing process **headless** (suspended + hidden), inject, then resume Core evasion and resolution primitives are provided by **[Dynveil](https://github.com/Abishekponmudi/dynveil)** (`lib/`) — a reusable library that implements PEB/PE parsing, API hashing, Tartarus Gate indirect syscalls, section mapping, AES crypto, and HTTP transport. Dynloader is the CLI + ingestion orchestration layer on top of Dynveil. @@ -118,7 +128,7 @@ build.bat clean :: Clean build.bat --install :: Install minimal VS Build Tools if missing, then build ``` -`build.bat` finds MSBuild via `vswhere`, picks a compatible toolset (`v145` / `v143` / `v142`), and builds `loader.sln`. On a machine with no compiler, `--install` pulls official Build Tools + C++ workload (winget or bootstrapper). +> `build.bat` finds MSBuild via `vswhere`, picks a compatible toolset (`v145` / `v143` / `v142`), and builds `loader.sln`. On a machine with no compiler, `--install` pulls official Build Tools + C++ workload (winget or bootstrapper). --- @@ -172,14 +182,14 @@ loader.exe payload.bin --verbose loader.exe --process notepad payload.bin --verbose ``` -If `notepad` is not running, Dynloader spawns it headless, injects, resumes. - -- Target by **PID** or **process name** (e.g. `notepad` / `1234`) — supports many legitimate binaries in the same session without elevation (`!SeDebugPrivilege` not required for same-integrity targets) -- Process discovery via **`NtQuerySystemInformation`** (SystemProcessInformation) over Tartarus Gate -- If the named process is **not running** → spawn **headless** (`CREATE_SUSPENDED` + no window), inject, then resume -- Remote stage: `NtAllocateVirtualMemory` → `NtWriteVirtualMemory` → `NtProtectVirtualMemory` (RX) -- Remote run: hash-resolved `CreateRemoteThread` -- Open target prefers `NtOpenProcess`, falls back to hashed `OpenProcess` +> If `notepad` is not running, Dynloader spawns it headless, injects, resumes. +> +> - Target by **PID** or **process name** (e.g. `notepad` / `1234`) — supports many legitimate binaries in the same session without elevation (`!SeDebugPrivilege` not required for same-integrity targets) +> - Process discovery via **`NtQuerySystemInformation`** (SystemProcessInformation) over Tartarus Gate +> - If the named process is **not running** → spawn **headless** (`CREATE_SUSPENDED` + no window), inject, then resume +> - Remote stage: `NtAllocateVirtualMemory` → `NtWriteVirtualMemory` → `NtProtectVirtualMemory` (RX) +> - Remote run: hash-resolved `CreateRemoteThread` +> - Open target prefers `NtOpenProcess`, falls back to hashed `OpenProcess` ### 4) Remote by PID @@ -217,7 +227,7 @@ Writes `.enc` + `.key` next to the input for lab packaging. --- -## Planned features +## Planned-features - **Manual PE loader** — full PE / DLL support alongside shellcode (`.bin`) - **Manual DLL loader / remote DLL ingestion** — map and run DLLs in local or remote processes without relying only on raw shellcode blobs