
Cross-process instrumentation for Windows x64 in TypeScript — hook functions, redirect threads, and read/write memory in another process, with no DLL injection and no CreateRemoteThread.
Cross-process instrumentation & JVM runtime reflection for Windows x64, entirely from TypeScript — hook native functions, redirect threads, inspect memory, and interact with live Java/Minecraft processes with zero DLL injection and no CreateRemoteThread.
[!CAUTION] LEGAL & ETHICAL DISCLAIMER This repository contains software engineering and reverse engineering instrumentation tools. It is provided strictly for educational purposes, security analysis, and malware research. Under no circumstances should this toolkit be used to exploit commercial software, target production systems, or bypass endpoint protections in protected software. The authors and contributors assume no liability for any misuse, damage, or legal consequences resulting from the execution or alteration of this codebase. By cloning, compiling, or referencing this repository, you agree to assume all risk and responsibility.
Exoproc combines low-level Windows x64 systems instrumentation with high-level runtime reflection into a unified TypeScript programming interface:
EB FE park-and-simulate hooking (bun-nhook) — Exoproc's flagship technique: an allocation-free 2-byte inline hook. Park any thread that enters the function, hand control to JS, inspect/modify args, force a return value, resume.bun-minhook) — a faithful MinHook-style 5-byte jmp + trampoline/detour hook, but the target lives in another process.CreateRemoteThread (bun-nthread) — every remote call in this toolkit runs by suspending and redirecting one of the target's own live threads, never by spawning a new one or injecting shellcode.bun-xffi) — player.health = 100, entity.position.x, nested and all, backed 1:1 by real (even remote) memory.bun:ffi all the way down (bun-xffi) — a runtime TinyCC JIT for machine code and a Capstone disassembler for instruction-level work.bun-njava) — Use Java.type('java.lang.System') to interact with remote JVM classes, call static/instance methods, and access fields directly from TypeScript.Throwable exceptions (ClassNotFoundException, InvocationTargetException, etc.) are caught and unwrapped into standard JavaScript Error objects, catchable via standard try / catch.Java.type, Java.from, Java.to) that function even on modern runtimes where Nashorn was removed.exoproc-tool) — Graph-based universal menu pathfinder (/navigate), in-game entity/inventory introspection, and Model Context Protocol (MCP) server for autonomous AI gameplay agents.Write automation scripts in clean TypeScript:
import { Java } from 'exoproc';
// 1. Read Java version from target JVM process
const System = Java.type('java.lang.System');
print(`[+] Java Version: ${System.getProperty('java.version')}`);
// 2. Access JVM classes or handle missing APIs cleanly
try {
const Nashorn = Java.type('jdk.nashorn.api.scripting.NashornScriptEngine');
print('[+] Nashorn engine ready');
} catch (err: any) {
print(`[-] Error: ${err.message}`);
}
Execute instantly against the target process:
exoproc run script.ts
Output:
[+] Java Version: 21.0.8
[-] Error: jdk.nashorn.api.scripting.NashornScriptEngine
| Package | Description |
|---|---|
exoproc | High-level client library, daemon orchestration, and Minecraft bridges |
exoproc-tool | CLI commands (run, navigate, status) and Model Context Protocol (MCP) server |
bun-njava | JNI & Agent reflection bridges, dynamic class proxies (Java.type), and mappings |
njava-agent | In-process high-speed Java bytecode injection and RPC agent |
njava-runtime | Modular Java execution contexts and Nashorn compatibility layer |
bun-nhook | Allocation-free 2-byte inline function hook (EB FE park & simulate) |
bun-minhook | 5-byte JMP relative trampoline detour hook across process boundaries |
bun-nthread | Thread hijacking and context redirection engine |
bun-xffi | Low-level C-ABI types, memory accessors, and runtime TinyCC JIT |
bun-winapi | Typed Win32 API handles, memory management, and process snapshots |
@exoproc/simulate | Standalone in-browser x86_64 virtual machine, OS simulation kernel, and debugger |
docs | Next.js 16 + Fumadocs documentation site and interactive debugging labs |
bun install # install dependencies & Capstone assets
bun run build # build all monorepo packages
bun test # run unit test suite
bun run web # start local documentation website (http://localhost:3000)
See examples/ for standalone, runnable demo projects against real target processes.
Full Turkish and English documentation, interactive debugger labs, and architecture guides are available in apps/docs or via:
bun run web