chromatic is a runtime instrumentation framework for Chromium/V8 processes that provides Frida-compatible APIs for memory inspection, function interception, breakpoint debugging, and code modification. The architecture consists of a core C++ implementation with TypeScript bindings that expose a JavaScript API. Key capabilities include process/module enumeration, memory read/write/allocation, native function calls, native callbacks, inline hooking via trampolines, software/hardware breakpoints, memory access monitoring, exception handling, and instruction disassembly. The project uses breeze-js (QuickJS) as its JavaScript engine, Capstone for disassembly, asmjit for runtime code generation, libffi for FFI, and TCC for runtime C compilation. Entry points include the chromatic-core library, chromatic-test binary, and chromatic-injectee shared library designed for fripack patching.
Skyline is a homebrew application framework for the Nintendo Switch that enables runtime code hooking, plugin loading, and enhanced debugging capabilities. It primarily functions as a replacement for game executables (like Super Smash Bros Ultimate) that patches the game's memory to intercept function calls, load user plugins, and provide advanced logging. The architecture centers around three core systems: a sophisticated AArch64 inline hooking engine (And64InlineHook) that safely modifies executable code in memory, a flexible logging subsystem that can output to debugger, SD card, or TCP sockets simultaneously, and a plugin manager that loads and validates user-created Nintendo Relay Object (NRO) files. The framework initializes by setting up memory protections, installing hooks on critical system functions (like file mounting and abort handling), and then transferring control to the target game while maintaining the ability to intercept and modify its behavior. Key technical achievements include the inline hooker's ability to handle various ARM64 branch instructions through trampoline generation and cache management, the logger's thread-safe queue design supporting multiple output destinations, and the plugin system's secure loading process that validates cryptographic hashes before execution. The code demonstrates strong engineering practices with proper resource cleanup, error handling, and separation of concerns.