MAIN BRANCH / DEVELOPMENT SNAPSHOT
Current mainline development
As of 2026-09-08 the snapshot is KSwordDEV/KSword@e3d8106. 297 commits landed since the previous sync (848b6bb, 2026-08-16), and the large majority of them are hardware virtualization. This page describes the state of main; it does not present unreleased work as a new version.
01 / SCOPE
This is a main-branch snapshot, not a new version number
e3d8106e2bdb5bba2421627b52b9491c5c3fdebb
Committed 2026-09-07 23:20 (-04:00). This page is based on that commit and its ancestors.
848b6bb..e3d8106 contains 297 commits spanning 2026-08-16 to 2026-09-08. Only changes that affect how the tool should be understood are listed below.
The newest published assets are 5.1.4.3 (2026-08-28) and 5.1.4.3Pre (2026-08-27). Main is 98 commits ahead of 5.1.4.3; you cannot replace a single EXE or SYS inside a release package.
The main program, KswordARK.sys, the shared IOCTL headers, language packs, DynData profiles, Launcher, and plugins must all come from the same build chain. Mixing files produces Unsupported states, protocol mismatches, or missing fields.
02 / VIRTUALIZATION
The resident VMM now survives, and the R-1 layer is built on it
Before this round, the RESIDENT_VMM capability bit only proved that the driver could enter and leave VMX non-root correctly: the first MSR access after entry revoked the hypervisor. The foundation work closed that gap — an MSR bitmap (primary bit 28 plus VMCS 0x2004), an exit engine that treats emulable exits as handled, #UD injection for non-private VMCALL (previously any user-mode code could tear the hypervisor down with one instruction), and a SOAK residency self-test.
- EPT rules gained
ENFORCE: a hit injects#PFand residency continues, instead of devirtualizing on every hit. - MSR policy engine: open holes in the bitmap on demand, with log-and-allow, deny via
#GP, or a forged read value. - CR/DR policy: CR0 and CR4 bits pinned through the guest/host masks, covering all four MOV-CR access types including
CLTSandLMSW. - The event ring is now consumed by the UI, row by row.
- EPT split views:
HOOK(execution takes the shadow page, reads see the original bytes) andCLOAK(execution proceeds, reads and writes see the shadow). - EPTP switching backend — the only workable backend on machines without Monitor Trap Flag.
- Per-processor private EPT hierarchies, forked on demand, which lifts the single-processor restriction on views and rules.
- EPT execution domains and VMFUNC;
#VEis implemented but two independent safeties block actual delivery by default.
AMD parts are no longer misreported as an unsupported CPU. Capability probing now reports SVM, NPT, nRIP, decode assists, flush-by-ASID, and the VM_CR.SVMDIS firmware lock, and returns BACKEND_NOT_IMPLEMENTED — the hardware is capable, the software is not written yet. The SVM backend itself was deliberately left unwritten: two thousand lines of never-executed hypervisor written on an Intel machine would only produce code that looks complete and has never run.
03 / NESTED
It can run as L1 under nesting, and the downgrade is explicit
The original roadmap assumed validation would happen on bare metal. Measurement overturned that: on a development machine with memory integrity enabled, HVCI brings up Hyper-V, and Hyper-V hides CPUID.1:ECX[5] from the root partition. VT-x cannot even be detected, so PREPARE fails outright. Resident start is therefore explicit opt-in: with an outer hypervisor present and no ALLOW_NESTED in the request, the driver refuses; on success it sets RESIDENT_NESTED and the UI states plainly that it is running as L1 with degraded performance and capabilities.
Flush hypercalls forwarded to L0 only invalidate the L1 VP that L0 knows about; stale translations on sibling cores are never cleared — a defect that exists only because we sit between Windows and Hyper-V. Using the return semantics of VirtualProtect as a deterministic criterion, the violation rate measured 97%. After the fix, three repeat runs read zero, and the sample volume fell from 180 million back to 6–7 million, matching the baseline. It also explains three previously unattributed crashes: 0x139 (0x1D), 0x0A, and 0x50.
The fix is a private VMX-root IDT plus a broadcast NMI — and the private IDT is a precondition for sending the NMI, not an optimization: a first attempt with only NMI broadcast hit 0x80 NMI_HARDWARE_FAILURE. The fix depends on VPID being disabled; enabling VPID for performance would silently break it, so the two changes must be made together.
See the Nested HVM topology demo → Read the nested architecture doc →
04 / R-1
R-1 process disposition and the memory channel
“Terminate a process from R-1” has no direct counterpart at the hypervisor layer — it does not know about processes, only CR3 values and guest physical pages. What this path actually does is refuse execution inside the target address space; the two operations differ only in what gets injected on refusal.
Injects #PF(present). The faulting instruction never retires, not one byte of process state changes, and release resumes in place. Reversibility is what separates it from termination — a difference in kind, not degree.
Injects #UD. An unhandled user-mode exception sends Windows down its own process teardown path; no kernel API is called, and the guest reclaims the process itself.
Selected through CR3-load exiting at the hierarchy level rather than per-page CR3 checks. With address-space selection, non-target processes never run under the restricted hierarchy at all.
The driver reserves a private window page and rewrites its own page-table entry to point at the target physical page. The value is not “it can read memory” but that it does not call memory-manager exports that may be hooked. When the window is unavailable, reads fall back to MmCopyMemory and writes are refused, and the response reports which path was taken.
Stealth hooks, split views, and R-1 disposition share one property: they fail open. If the target can move its code page to a different guest physical page, it is no longer on the page being refused. This is a disposition path outside R0, not a defence against an adversary who knows it exists.
05 / KERNEL
Kernel, driver, and diagnostics
- Window layer and Z-order diagnostics, attached to window details.
- Kernel IoTimer inventory and control.
- Process termination that deletes the exact image file.
- A kernel callback monitor page, with matching CLI query and capture-control commands.
- Kernel knowledge center: 12 categories, 71 topics, with R3/R0 live-evidence queries and routing to the matching read-only evidence pages.
- R0 capture lifecycle control, plus i18n coverage for network protocol validation.
- The sound module now rejects unverifiable process identity.
- System-time reset preserves counter continuity.
- A driver feature-matrix CI gate: every new IOCTL needs a definite disposition, and a crash is a failure.
- 70 HVM arithmetic unit tests wired into
source-integrity.
These pages remain subject to Driver Status, Capability, DynData, and target-identity gating; a visible button does not mean the corresponding R0 capability is ready.
06 / LIGHT
KswordARKLight became an investigation workbench
Light moved this round from a set of read-only pages to an investigation workflow with workspace state: an evidence session inspector, a versioned window-state model, a bounded registry search workspace, a static navigation palette, and — for memory — immutable read snapshots, staged write plans, and guarded diff writeback. The window, startup, service, system-tools, handle, driver, and ETW pages gained “go to the holder process details” routing, and callback file events are now linked to entities.
Actions that write, delete, restore, or discard records continue to use explicit confirmation, generation checks, and result write-back; export paths are unified as snapshot exports of visible results.
07 / UI & RUNTIME
UI and runtime
A KVM button joins the privilege button row in the title bar. It is a three-state indicator of residency and the single entry point for every R-1 capability: left click toggles residency, and the context menu carries the soak self-test, the write-permission gate, memory operations, and fault reset. The button can be renamed to KVM, HVM, or R-1 in settings, and the privilege buttons can be hidden individually.
Elsewhere: ADS tab bars scroll horizontally and no longer collapse to zero width; detail reports use a unified structured report widget; the process page gained per-core CPU attribution with expandable charts, thread CPU affinity settings, dynamic history snapshots and table snapshot comparison; startup entries support multi-select; and the bugcheck diagnostics page was rebuilt around explicit installation.
08 / EVIDENCE
Acceptance status: what has evidence and what does not
This round produced the first runtime readings, on a 2 vCPU nested Hyper-V target: cross-core TLB violations 97% → 0; a kernel-mode read in the CLOAK direction transparently redirected to the shadow page by EPTP switching without dropping residency; an R-1 freeze that stopped the heartbeat at tick 15 and held it, then resumed at 16 after release rather than restarting from 0; an R-1 terminate that removed the process; and a routine 30-second SOAK still passing.
The HOOK direction — execution redirected to the shadow — has not been measured. No hook was placed on a known function. The user-mode ReadProcessMemory path is unverified: a user-mode fail-closed returns to ring 0 carrying the ring-3 RSP/RIP and bugchecks in practice. Bit-for-bit restoration after disabling a hook was not compared. Bare-metal acceptance has not been done at all. The readings above come from a nested target and cannot be treated as bare-metal conclusions.
The earlier next-phase acceptance report keeps the same honest counting: 2 of 116 items PASS, 114 NOT_RUN, with none of the six target environments exercised. Read the acceptance final report →
09 / OPERATOR NOTES
Minimum checks before testing on main
- 1The whole build must come from one commit.
Do not replace only the EXE, SYS, language pack, profiles, or plugins.
- 2Check Driver Status, DynData, and Capability first.
Unsupported means a protocol, driver, or capability mismatch — not that the page has no data.
- 3Start resident HVM only in an authorized, rollback-capable environment.
Save your work before every start. While resident,
sc stopreturns1052because the unload guard is holding it; residency must be stopped first. EPT rules, split views, and R-1 dispositions can also only be installed while residency is stopped. - 4Test high-risk actions only where they can be rolled back.
System time, disk writes, driver unload, kernel modification, process protection, and delete actions all need a snapshot or a recovery path.
- 5Preserve pre-change evidence.
Export target identity, addresses, owning module, configuration, and timestamps; refresh afterwards and keep both results.
10 / COMMIT INDEX



