diff --git a/README.md b/README.md index 9d59b31..fbd6668 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,8 @@
-# 🌙 Nocturne +Nocturne Banner -### CET-Compatible Stack Spoofing Loader - -A Windows x64 loader that achieves **legitimate call stacks** through runtime function table manipulation, code cave injection, and inverted function table collapse — fully compatible with Intel CET Shadow Stacks. +
[![Windows](https://img.shields.io/badge/Platform-Windows%20x64-blue?style=flat-square&logo=windows)](https://microsoft.com) [![C++20](https://img.shields.io/badge/Language-C++20-purple?style=flat-square&logo=cplusplus)](https://isocpp.org) @@ -41,7 +39,7 @@ All Win32/NT APIs are resolved at runtime by walking the PEB loader data structu The Import Address Table is populated exclusively with **benign USER32.dll imports** (`MessageBoxA`, `RegisterClassW`, `IsWindowVisible`, etc.) placed inside an unreachable code branch. Static analysis tools see a harmless GUI application rather than a loader.
-IAT Camouflage — Only benign imports visible +IAT Camouflage — Only benign imports visible
Clean IAT — only benign USER32.dll imports and heap management functions
@@ -61,7 +59,7 @@ This is Nocturne's core technique. The stack spoofing pipeline: The result: every frame in the call stack resolves to `windows_storage!` — a legitimate, backed module.
-Process Hacker — Clean call stack with windows.storage frames +Process Hacker — Clean call stack with windows.storage frames
Process Hacker call stack — all frames resolve to windows.storage.dll
@@ -69,7 +67,7 @@ The result: every frame in the call stack resolves to `windows_storage!
-WinDbg — Spoofed stack trace +WinDbg — Spoofed stack trace
WinDbg stack trace showing legitimate windows_storage frames
@@ -79,7 +77,7 @@ The result: every frame in the call stack resolves to `windows_storage! -WinDbg Bypass — Dynamic table hidden from debugger +WinDbg Bypass — Dynamic table hidden from debugger
WinDbg bypass — .fnent shows donor unwind info, no dynamic table artifacts
@@ -93,7 +91,7 @@ The entire project compiles with `/NODEFAULTLIB` and a custom entry point. Memor Shellcode is XOR-decrypted at runtime and executed through the **ShadowGate** assembly stub, which sets up the spoofed stack frame before transferring control.
-Reverse Shell — Payload executing with spoofed stack +Reverse Shell — Payload executing with spoofed stack
Reverse shell established with fully spoofed call stack
diff --git a/docs/banner.svg b/docs/banner.svg new file mode 100644 index 0000000..8961d30 --- /dev/null +++ b/docs/banner.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NOCTURNE + + + CET-COMPATIBLE STACK SPOOFING LOADER + + + + + + +