[{"data":1,"prerenderedAt":207},["ShallowReactive",2],{"navigation_docs":3,"landing":99},[4,30,47,56,73,90],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Api Reference","\u002Fdocs\u002Fapi-reference","docs\u002Fapi-reference",[9,13,17,21,25],{"title":10,"path":11,"stem":12},"protocol","\u002Fdocs\u002Fapi-reference\u002Fprotocol","docs\u002Fapi-reference\u002F1.protocol",{"title":14,"path":15,"stem":16},"transport_hid","\u002Fdocs\u002Fapi-reference\u002Ftransport-hid","docs\u002Fapi-reference\u002F2.transport-hid",{"title":18,"path":19,"stem":20},"shell_child","\u002Fdocs\u002Fapi-reference\u002Fshell-child","docs\u002Fapi-reference\u002F3.shell-child",{"title":22,"path":23,"stem":24},"pump","\u002Fdocs\u002Fapi-reference\u002Fpump","docs\u002Fapi-reference\u002F4.pump",{"title":26,"path":27,"stem":28},"hidapi_ffi","\u002Fdocs\u002Fapi-reference\u002Fhidapi-ffi","docs\u002Fapi-reference\u002F5.hidapi-ffi",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Architecture","\u002Fdocs\u002Farchitecture","docs\u002Farchitecture",[35,39,43],{"title":36,"path":37,"stem":38},"Device detection","\u002Fdocs\u002Farchitecture\u002Fdevice-detection","docs\u002Farchitecture\u002F1.device-detection",{"title":40,"path":41,"stem":42},"Shell spawning","\u002Fdocs\u002Farchitecture\u002Fshell-spawning","docs\u002Farchitecture\u002F2.shell-spawning",{"title":44,"path":45,"stem":46},"The pump","\u002Fdocs\u002Farchitecture\u002Fpump","docs\u002Farchitecture\u002F3.pump",{"title":48,"path":49,"stem":50,"children":51,"page":29},"Community","\u002Fdocs\u002Fcommunity","docs\u002Fcommunity",[52],{"title":53,"path":54,"stem":55},"Contributing","\u002Fdocs\u002Fcommunity\u002Fcontributing","docs\u002Fcommunity\u002F1.contributing",{"title":57,"path":58,"stem":59,"children":60,"page":29},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started",[61,65,69],{"title":62,"path":63,"stem":64},"Introduction","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002Fgetting-started\u002F1.introduction",{"title":66,"path":67,"stem":68},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002Fgetting-started\u002F2.installation",{"title":70,"path":71,"stem":72},"Quick start","\u002Fdocs\u002Fgetting-started\u002Fquick-start","docs\u002Fgetting-started\u002F3.quick-start",{"title":74,"path":75,"stem":76,"children":77,"page":29},"Guides","\u002Fdocs\u002Fguides","docs\u002Fguides",[78,82,86],{"title":79,"path":80,"stem":81},"Building","\u002Fdocs\u002Fguides\u002Fbuilding","docs\u002Fguides\u002F1.building",{"title":83,"path":84,"stem":85},"Deploying to an agent","\u002Fdocs\u002Fguides\u002Fdeploying","docs\u002Fguides\u002F2.deploying",{"title":87,"path":88,"stem":89},"Debugging","\u002Fdocs\u002Fguides\u002Fdebugging","docs\u002Fguides\u002F3.debugging",{"title":91,"path":92,"stem":93,"children":94,"page":29},"Protocol","\u002Fdocs\u002Fprotocol","docs\u002Fprotocol",[95],{"title":96,"path":97,"stem":98},"Wire protocol","\u002Fdocs\u002Fprotocol\u002Fwire-protocol","docs\u002Fprotocol\u002F1.wire-protocol",{"id":100,"title":101,"body":102,"description":199,"extension":200,"meta":201,"navigation":202,"path":203,"seo":204,"stem":205,"__hash__":206},"landing\u002Findex.md","HID-Shell",{"type":103,"value":104,"toc":196},"minimark",[105,130,166],[106,107,108,112,115],"u-page-hero",{},[109,110,101],"template",{"v-slot:title":111},"",[109,113,114],{"v-slot:description":111},"A headless shell payload that rides the Vandal agent's vendor HID interface. It spawns a local OS shell and pumps stdin\u002Fstdout over 64-byte raw HID reports — no network path, no console window on the host, nothing written to disk.",[109,116,117,123],{"v-slot:links":111},[118,119,122],"u-button",{"to":120,"trailing-icon":121},"\u002Fhid-shell\u002Fdocs\u002Fgetting-started\u002F1.introduction","i-lucide-book-open","Getting started",[118,124,129],{"to":125,"icon":126,"target":127,"variant":128},"https:\u002F\u002Fgithub.com\u002Fcircle-rd\u002Fhid-shell","i-simple-icons-github","_blank","outline","GitHub",[131,132,133,136,139],"u-page-section",{},[109,134,135],{"v-slot:title":111},"Core concepts",[109,137,138],{"v-slot:description":111},"Everything you need to understand what HID-Shell does and how it moves bytes.",[109,140,141,148,154,160],{"v-slot:features":111},[142,143],"u-page-feature",{"description":144,"icon":145,"title":146,"to":147},"Speaks the Vandal vendor HID interface (usage page 0xFF00) with 64-byte reports — no TCP, UDP, or any other network protocol on the host.","i-lucide-plug","Raw-HID transport","\u002Fhid-shell\u002Fdocs\u002Fprotocol\u002F1.wire-protocol",[142,149],{"description":150,"icon":151,"title":152,"to":153},"Spawns cmd.exe (Windows, hidden console) or an interactive \u002Fbin\u002Fsh on a PTY (POSIX) and streams bytes both ways until the agent sends BYE.","i-lucide-terminal","Headless shell bridge","\u002Fhid-shell\u002Fdocs\u002Farchitecture\u002F2.shell-spawning",[142,155],{"description":156,"icon":157,"title":158,"to":159},"Probes every vendor-page HID device with a HELLO\u002FHELLO_ACK exchange so it opens the real Vandal agent, not an RGB controller or gaming dongle.","i-lucide-crosshair","Device disambiguation","\u002Fhid-shell\u002Fdocs\u002Farchitecture\u002F1.device-detection",[142,161],{"description":162,"icon":163,"title":164,"to":165},"An event loop that alternates short non-blocking reads from the HID link and the child shell, fragments output into frames, and pings for liveness.","i-lucide-arrows-left-right","Single-threaded pump","\u002Fhid-shell\u002Fdocs\u002Farchitecture\u002F3.pump",[131,167,168,171,174],{},[109,169,170],{"v-slot:title":111},"Reference",[109,172,173],{"v-slot:description":111},"Authoritative reference derived directly from the source tree.",[109,175,176,180,186,191],{"v-slot:features":111},[142,177],{"description":178,"icon":179,"title":96,"to":147},"Frame layout, CTRL subtypes, OS identifiers, versioning, lifecycle, flow control and sequence numbers.","i-lucide-file-code",[142,181],{"description":182,"icon":183,"title":184,"to":185},"Every exported procedure, type and constant across protocol, transport_hid, shell_child and pump.","i-lucide-braces","API reference","\u002Fhid-shell\u002Fdocs\u002Fapi-reference\u002F1.protocol",[142,187],{"description":188,"icon":189,"title":79,"to":190},"Docker cross-toolchain, local Nim builds, and the opt-in fully-static macOS binary.","i-lucide-hammer","\u002Fhid-shell\u002Fdocs\u002Fguides\u002F1.building",[142,192],{"description":193,"icon":194,"title":83,"to":195},"Download, verify and upload the three payloads to a Vandal agent's \u002Fpayloads\u002F volume.","i-lucide-rocket","\u002Fhid-shell\u002Fdocs\u002Fguides\u002F2.deploying",{"title":111,"searchDepth":197,"depth":197,"links":198},2,[],"Headless cross-platform raw-HID shell payload for the Vandal ESP32 agent.","md",{},true,"\u002F",{"title":101,"description":199},"index","7hruMIL9mPxs_JTg9JL5dZBNpe-FcKMq76pGiv8uP5A",1788420691099]