reason-machines/trending-skills1 file

Ntwarden Windows Analysis Toolkit

NtWarden is a Windows Analysis and Research Toolkit providing GUI-based inspection of processes, kernel internals, services, network, ETW, and more via ImGui + DirectX 11 with optional kernel driver support.

Specification
Skill ID
reason-machines/trending-skills/ntwarden-windows-analysis-toolkit
Publisher
reason-machines
Repository
trending-skills
Installs
0
Files
1
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

reason-machines/trending-skills/ntwarden-windows-analysis-toolkitInstalls these files
  • SKILL.md

What this skill tells the agent

NtWarden Windows Analysis and Research Toolkit

Skill by ara.so — Daily 2026 Skills collection.

NtWarden is a Windows system inspection tool built on ImGui + DirectX 11. It covers processes, services, network, kernel internals, ETW, registry, object manager, and more — locally or remotely via WinSysServer. A kernel driver (KWinSys) enables deep kernel-mode analysis including SSDT hooks, kernel callbacks, EPT hook detection, and driver integrity checks.


Architecture

ComponentRole
NtWardenGUI app (ImGui + DirectX 11)
WinSysStatic lib — process, service, network enumeration
KWinSysKernel driver — callbacks, SSDT, kernel modules, pool, etc.
WinSysServerHeadless TCP server for remote inspection

Build Requirements

  • Visual Studio 2022
  • Windows SDK 10.0.26100.0+
  • WDK (Windows Driver Kit) — required only for KWinSys kernel driver

Building

# Open solution in Visual Studio 2022
# Select Release | x64
# Build All

# Output lands in:
x64/Release/NtWarden.exe
x64/Release/WinSysServer.exe
x64/Release/KWinSys/KWinSys.sys

Solution structure:

NtWarden.sln
├── NtWarden/          # GUI application
├── WinSys/            # Core static library
├── KWinSys/           # Kernel driver (.sys)
└── WinSysServer/      # Remote TCP server

Running NtWarden

Always run as Administrator for full functionality.

# Run elevated
Start-Process NtWarden.exe -Verb RunAs

User-mode features (processes, services, network, ETW, registry, object manager) work without the driver.


Kernel Driver Setup (KWinSys)

⚠️ Use only in a test VM. Enable test signing before installing.
# Enable test signing (requires reboot)
bcdedit /set testsigning on

# On VMs, may also need:
bcdedit /set nointegritychecks on

# Reboot, then run NtWarden as Administrator.
# Switching to the Kernel Mode tab auto-installs and starts KWinSys.

Manual driver management:

# Install manually
sc create KWinSys type= kernel binPath= "C:\path\to\KWinSys.sys"
sc start KWinSys

# Stop and remove
sc stop KWinSys
sc delete KWinSys

The NtWarden GUI also exposes driver management under the Driver menu.


Remote Inspection (WinSysServer)

Deploy to a target machine (typically a VM) and connect from NtWarden.

Files to copy to target

FileSource PathPurpose
WinSysServer.exex64/Release/WinSysServer.exeAlways required
KWinSys.sysx64/Release/KWinSys/KWinSys.sysKernel features only

Starting the server (on target, elevated)

# Auto-install driver + start server on default port 50002
WinSysServer.exe --install

# Custom port
WinSysServer.exe --install --port 9000

# If driver already installed manually:
WinSysServer.exe
WinSysServer.exe --port 9000

Connecting from NtWarden (on host)

  1. Launch NtWarden
  2. Go to Remote menu
  3. Enter target IP and port (default: 50002)
  4. Click Connect

Protocol notes

  • Custom binary protocol over TCP
  • 12-byte header: MessageType, DataSize, Status
  • No authentication — use only in isolated lab/VM environments
  • User-mode data (processes, services, network) works without KWinSys on target
  • Kernel tabs require KWinSys loaded on the remote target

WinSys Static Library — Key Usage Patterns

WinSys is the core library consumed by both NtWarden and WinSysServer. Example integration patterns in C++:

Process Enumeration

#include "WinSys/ProcessManager.h"

// Enumerate all processes (user mode)
auto& pm = WinSys::ProcessManager::Get();
pm.Update();  // Refresh snapshot

for (auto& proc : pm.GetProcesses()) {
    printf("PID: %5u  Name: %s\n",
        proc->Id,
        proc->GetImageName().c_str());
}

Service Enumeration

#include "WinSys/ServiceManager.h"

WinSys::ServiceManager svcMgr;
auto services = svcMgr.EnumServices();

for (auto& svc : services) {
    printf("Service: %-40s  State: %u  StartType: %u\n",
        svc.GetName().c_str(),
        svc.Status.dwCurrentState,
        svc.Config.dwStartType);
}

Network Connections

#include "WinSys/NetworkManager.h"

WinSys::NetworkManager netMgr;
auto conns = netMgr.GetTcpConnections();

for (auto& conn : conns) {
    printf("PID: %u  Local: %s:%u  Remote: %s:%u  State: %u\n",
        conn.ProcessId,
        conn.LocalAddress.c_str(), conn.LocalPort,
        conn.RemoteAddress.c_str(), conn.RemotePort,
        conn.State);
}

Communicating with KWinSys Driver (IOCTL)

#include "WinSys/KernelInterface.h"

// Open handle to driver device
WinSys::KernelInterface ki;
if (!ki.Open()) {
    fprintf(stderr, "Failed to open KWinSys device. Is driver loaded?\n");
    return;
}

// Enumerate kernel modules
auto modules = ki.EnumKernelModules();
for (auto& mod : modules) {
    printf("Base: %p  Size: 0x%X  Path: %s\n",
        mod.Base, mod.Size, mod.FullPath.c_str());
}

// Read kernel callbacks
auto callbacks = ki.EnumProcessCallbacks();
for (auto& cb : callbacks) {
    printf("Callback: %p  Module: %s  Suspicious: %d\n",
        cb.Address,
        cb.OwnerModule.c_str(),
        cb.IsSuspicious ? 1 : 0);
}

Per-Process Security Analysis (Analyze Process)

Accessible via right-click > Analyze Process in the GUI, or programmatically:

#include "WinSys/ProcessAnalyzer.h"

DWORD targetPid = 1234;
WinSys::ProcessAnalyzer analyzer(targetPid);

auto result = analyzer.Analyze();

// Unbacked executable memory (shellcode indicator)
for (auto& region : result.UnbackedRegions) {
    printf("Unbacked RX region: base=%p size=0x%zX\n",
        region.Base, region.Size);
}

// Hollowing detection
if (result.HollowingDetected) {
    printf("Hollowing: PEB ImageBase=%p vs PE Header ImageBase=%p\n",
        result.PebImageBase, result.PeHeaderImageBase);
}

// Direct syscalls outside ntdll
for (auto& sc : result.DirectSyscalls) {
    printf("Direct syscall at: %p in module: %s\n",
        sc.Address, sc.ModuleName.c_str());
}

// Inline user hooks
for (auto& hook : result.UserHooks) {
    printf("Hook in %s!%s at %p -> %p\n",
        hook.Module.c_str(),
        hook.Function.c_str(),
        hook.Address,
        hook.Target);
}

// Token info
printf("Elevated: %d  IntegrityLevel: %u\n",
    result.Token.IsElevated,
    result.Token.IntegrityLevel);

Key Features by Tab

User Mode (no driver)

TabCapability
ProcessesTree view, handles, threads, memory regions, modules
PerformanceCPU/RAM/GPU/network graphs, overlay mode
ServicesStatus, start type, binary path
Network > ConnectionsTCP/UDP with owning PID
Network > Root CertificatesSubject, issuer, thumbprint
Network > NDISAdapter driver, MAC, speed, media type
ETWActive trace sessions and registered providers
IPCRPC endpoints and named pipes
Object ManagerKernel object namespace browser
RegistryKey/value browser
LoggerKernel driver debug logs + GUI logs

Kernel Mode (requires KWinSys)

TabCapability
Process ObjectsEPROCESS enumeration, hidden process detection
ModulesKernel drivers + LolDrivers check
CallbacksProcess/thread/image/registry/object/power callbacks + integrity
SSDTEntries with owner and hook detection
Kernel PoolBig pool allocations and tag stats
Memory R/WRead/write kernel memory by address
TimersPer-CPU interrupt and DPC counters
FilterMinifilter drivers with altitude/instance
Descriptor TablesGDT/IDT entries
IRP DispatchIRP dispatch table for any driver
WFPWFP callout drivers and filters
DSE StatusDriver Signature Enforcement state
CI PolicyCode Integrity policy and enforcement level
Kernel IntegrityVerify kernel .text vs on-disk image

Use this skill in a project

Open any RiverX project, search the Skills panel for reason-machines/trending-skills/ntwarden-windows-analysis-toolkit, and install it in one click.

Use this skill