
Windows x64용 크로스 프로세스 계측을 TypeScript로 구현 — DLL 인젝션과 CreateRemoteThread 없이 다른 프로세스의 함수를 후킹하고, 스레드를 리디렉션하며, 메모리를 읽고 쓸 수 있습니다.
Windows x64를 위한 크로스 프로세스 계측 및 JVM 런타임 리플렉션, 전부 TypeScript로 — 네이티브 함수 후킹, 스레드 리다이렉션, 메모리 검사, 그리고 DLL 인젝션과 CreateRemoteThread 없이 라이브 Java/Minecraft 프로세스와 상호작용.
[!CAUTION] 법적 및 윤리적 면책 조항 이 저장소는 소프트웨어 엔지니어링 및 리버스 엔지니어링 계측 도구를 포함합니다. 이는 교육 목적, 보안 분석, 악성코드 연구를 위해서만 제공됩니다. 어떠한 경우에도 이 툴킷을 상용 소프트웨어를 익스플로잇하거나, 프로덕션 시스템을 대상으로 하거나, 보호된 소프트웨어의 엔드포인트 보호를 우회하는 데 사용해서는 안 됩니다. 저자와 기여자는 이 코드베이스의 실행 또는 변경으로 인해 발생하는 어떠한 오용, 손해 또는 법적 결과에 대해서도 책임을 지지 않습니다. 이 저장소를 복제, 컴파일 또는 참조함으로써 귀하는 모든 위험과 책임을 감수하는 데 동의하는 것입니다.
Exoproc은 저수준 Windows x64 시스템 계측과 고수준 런타임 리플렉션을 하나의 통합된 TypeScript 프로그래밍 인터페이스로 결합합니다:
EB FE 파크 앤 시뮬레이트 후킹 (bun-nhook) — Exoproc의 대표 기법: 할당 없는 2바이트 인라인 후크. 함수에 진입하는 모든 스레드를 파킹하고, 제어권을 JS로 넘기고, 인자를 검사/수정하고, 반환 값을 강제하고, 재개합니다.bun-minhook) — 충실한 MinHook 스타일의 5바이트 jmp + 트램폴린/디투어 후크이지만, 대상이 _다른 프로세스_에 있습니다.CreateRemoteThread 없이 (bun-nthread) — 이 툴킷의 모든 원격 호출은 대상의 살아있는 스레드 중 하나를 일시 중단하고 리다이렉션하여 실행되며, 절대 새로운 스레드를 생성하거나 셸코드를 주입하지 않습니다.bun-xffi) — player.health = 100, entity.position.x, 중첩된 것까지 모두 실제 (심지어 원격) 메모리에 1:1로 대응됩니다.bun:ffi를 끝까지 활용 (bun-xffi) — 머신 코드를 위한 런타임 TinyCC JIT와 명령어 수준 작업을 위한 Capstone 디스어셈블러.bun-njava) — Java.type('java.lang.System')을 사용하여 원격 JVM 클래스와 상호작용하고, 정적/인스턴스 메서드를 호출하며, TypeScript에서 직접 필드에 접근합니다.Throwable 예외(ClassNotFoundException, InvocationTargetException 등)가 포착되어 표준 JavaScript Error 객체로 언래핑되며, 표준 try / catch로 잡을 수 있습니다.Java.type, Java.from, Java.to).exoproc-tool) — 그래프 기반 범용 메뉴 경로 탐색기(/navigate), 게임 내 엔티티/인벤토리 내성 검사, 그리고 자율 AI 게임플레이 에이전트를 위한 Model Context Protocol (MCP) 서버.깔끔한 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}`);
}
대상 프로세스에 대해 즉시 실행:
exoproc run script.ts
출력:
[+] Java Version: 21.0.8
[-] Error: jdk.nashorn.api.scripting.NashornScriptEngine
| 패키지 | 설명 |
|---|---|
exoproc | 고수준 클라이언트 라이브러리, 데몬 오케스트레이션, Minecraft 브리지 |
exoproc-tool | CLI 명령(run, navigate, status) 및 Model Context Protocol (MCP) 서버 |
bun-njava | JNI 및 Agent 리플렉션 브리지, 동적 클래스 프록시(Java.type), 매핑 |
njava-agent | 인프로세스 고속 Java 바이트코드 주입 및 RPC 에이전트 |
njava-runtime | 모듈식 Java 실행 컨텍스트 및 Nashorn 호환성 계층 |
bun-nhook | 할당 없는 2바이트 인라인 함수 후크 (EB FE 파크 앤 시뮬레이트) |
bun-minhook | 프로세스 경계를 넘는 5바이트 JMP 상대 트램폴린 디투어 후크 |
bun-nthread | 스레드 하이재킹 및 컨텍스트 리다이렉션 엔진 |
bun-xffi | 저수준 C-ABI 타입, 메모리 접근자, 런타임 TinyCC JIT |
bun-winapi | 타입이 지정된 Win32 API 핸들, 메모리 관리, 프로세스 스냅샷 |
@exoproc/simulate | 독립형 브라우저 내 x86_64 가상 머신, OS 시뮬레이션 커널, 디버거 |
docs | Next.js 16 + Fumadocs 문서 사이트 및 대화형 디버깅 랩 |
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)
실제 대상 프로세스에 대한 독립 실행형 데모 프로젝트는 examples/를 참조하세요.
전체 터키어 및 영어 문서, 대화형 디버거 랩, 아키텍처 가이드는 apps/docs에서 또는 다음을 통해 확인할 수 있습니다:
bun run web
개발 설정, Wine 테스트 워크플로, 코딩 표준은 CONTRIBUTING.md를 참조하세요.
취약점을 발견하셨나요? 공개 이슈를 열기 전에 책임감 있게 보고하는 방법은 SECURITY.md를 참조하세요.
GNU AGPL-3.0-or-later — Copyright (C) 2026 Serkan Aksoy. 합법적인 보안 연구 및 교육 목적으로만 제공되며, 사용 방식에 대한 책임은 귀하에게 있습니다. 허용적 라이선스 대신 의도적으로 선택된 이유: 수정된 버전은 — 네트워크 서비스로 실행되는 경우를 포함하여 — 해당 소스가 동일한 조건으로 사용자에게 제공되어야 합니다.