Commit Graph

11 Commits

Author SHA1 Message Date
dutchpsycho 3159249e08 controller/injection: port injection module to C++ and add handle utility header
Replace Blackbird_controller_injection.c with injection.cpp. Add core/util/handles.h
with RAII handle wrappers (UniqueHandle, UniqueProcessHandle) used across the C++
modules to avoid manual CloseHandle call paths. Refs #11.
2026-04-17 15:00:00 +00:00
dutchpsycho b1a4e00f31 controller/monitoring: port ETW monitor and subscription manager to C++
Replace Blackbird_controller_etw_monitor.c and Blackbird_controller_subscriptions.c
with etw_monitor.cpp and subscriptions.cpp. ETW event callback registration and
the subscription routing table are unchanged. Refs #11.
2026-04-17 14:00:00 +00:00
dutchpsycho d1917ca479 controller/correlation: port process hollowing detector to C++
Replace Blackbird_controller_hollowing.c with hollowing.cpp. The cross-process
hollowing detection logic and intent correlation queries are unchanged. Refs #11.
2026-04-17 13:00:00 +00:00
dutchpsycho 05a02e97c2 controller/heuristics: port heuristics engine to C++ and consolidate private header
Replace Blackbird_controller_heuristics.c and its companion .h with heuristics.cpp
and heuristics.h. The scoring and correlation logic is preserved. Update
Blackbird_controller_private.h to remove declarations that were folded into the
per-module headers during the C++ migration. Refs #11.
2026-04-17 12:00:00 +00:00
dutchpsycho 8233d87928 controller/runtime: port controller runtime, node runtime, and symbol service to C++
Replace Blackbird_controller_runtime.c, blackbird_controller_node_runtime.c, and
blackbird_controller_symbol_service.c with runtime.cpp, node_runtime.cpp, and
symbol_service.cpp respectively. Node-runtime thread management uses std::thread
and the symbol service uses std::string for path handling. Refs #11.
2026-04-17 11:00:00 +00:00
dutchpsycho 375dbd1aff controller/ipc: port IPC server and client protocol handler to C++
Replace Blackbird_controller_ipc.c with ipc.cpp. Critical section handles
are now wrapped through g_DriverLock.get() using the RAII lock wrapper
introduced in the private header. The IPC server dispatch loop and all
command handler stubs are preserved functionally. Refs #11.
2026-04-17 10:00:00 +00:00
dutchpsycho d68c57008e controller: port main entry point and service host from C to C++
Replace Blackbird_controller.c with controller.cpp. The C++ translation uses
RAII for the log file and service handles through a ControllerLogger class,
removing the manual critical-section teardown paths. Refs #11.
2026-04-17 09:00:00 +00:00
dutchpsycho 5a2f4dd851 controller/ipc: persist interface auth and preserve hook call stacks
Two regressions landed in the same control path.

First, interface authentication was bound to the transient control client that
issued MarkInterfaceReady. Follow-on handles from the same interface process
were treated as unauthenticated and immediately hit ACCESS_DENIED, which broke
OpenControlDevice and later controller calls even when the interface was the
trusted client.

Second, usermode hook events were published into the ETW transport with the
origin address but with StackCount zeroed, so the controller/UI stack chain
collapsed before symbol enrichment could do any useful work.

Restructure the controller side to keep the auth chain and hook evidence intact:
- persist the authorized interface process/session after MarkInterfaceReady
- allow later control handles from that same trusted interface session to
  resume authenticated access
- accept both published and repo-build interface paths when establishing trust
- carry captured hook stack frames into the mapped ETW event instead of
  discarding them
- prime and symbol-enrich every captured frame up to the ETW stack limit

This restores the expected control-device handshake while also keeping caller
origin and stack evidence available to downstream analysis surfaces.
2026-04-08 15:42:00 +10:00
dutchpsycho d34404c95e hook/runtime: harden controller bootstrap and prune legacy IPC 2026-04-13 14:55:19 +10:00
dutchpsycho 91ff4521e7 hook/runtime: add module hooks and image-backed integrity checks 2026-04-03 17:47:54 +10:00
dutchpsycho b5a1526529 Fix project paths after source tree rename 2026-04-03 14:23:15 +10:00