
Windows x64向けのクロスプロセスインストゥルメンテーションをTypeScriptで実現 — DLLインジェクションやCreateRemoteThreadを使わずに、関数のフック、スレッドのリダイレクト、別プロセスのメモリ読み書きが可能。
Windows x64 向けのクロスプロセス・インストルメンテーション & JVM ランタイムリフレクションを、完全に TypeScript から — ネイティブ関数のフック、スレッドのリダイレクト、メモリの検査、そして稼働中の Java/Minecraft プロセスとの対話を、DLL インジェクションも CreateRemoteThread も一切使わずに実現。
[!CAUTION] 法的・倫理的免責事項 このリポジトリには、ソフトウェアエンジニアリングおよびリバースエンジニアリング用のインストルメンテーションツールが含まれています。これは教育目的、セキュリティ分析、およびマルウェア研究に厳密に限定して提供されます。 いかなる状況においても、このツールキットを商用ソフトウェアの悪用、本番システムへの攻撃、または保護されたソフトウェアにおけるエンドポイント保護の回避に使用してはなりません。 著者および貢献者は、このコードベースの実行または改変から生じるいかなる誤用、損害、または法的結果についても一切の責任を負いません。このリポジトリをクローン、コンパイル、または参照することにより、あなたはすべてのリスクと責任を負うことに同意したものとみなされます。
Exoproc は、低レベルの Windows x64 システムインストルメンテーションと高レベルのランタイムリフレクションを、統一された TypeScript プログラミングインターフェースに統合します:
EB FE park-and-simulate フッキング (bun-nhook) — Exoproc の旗艦技術:アロケーション不要の 2 バイトインラインフック。関数に進入したスレッドを park し、制御を JS に渡し、引数を検査・変更し、戻り値を強制し、再開します。bun-minhook) — MinHook スタイルの忠実な 5 バイト jmp + トランポリン/デトゥールフックですが、ターゲットは 別のプロセス に存在します。CreateRemoteThread を使わないスレッドリダイレクト (bun-nthread) — このツールキット内のすべてのリモート呼び出しは、ターゲット自身の稼働中スレッドの 1 つをサスペンドしてリダイレクトすることで実行され、新しいスレッドを生成したりシェルコードを注入したりすることは決してありません。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 park & simulate) |
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 を参照してください。
脆弱性を発見しましたか?公開 issue を開く代わりに、責任ある報告方法について SECURITY.md を参照してください。
GNU AGPL-3.0-or-later — Copyright (C) 2026 Serkan Aksoy. 合法的なセキュリティ研究および教育のみを目的として提供されています。その使用方法についてはあなたが責任を負います。寛容なライセンスではなく意図的にこれを選択した理由:改変されたバージョンは — ネットワークサービスとして実行されるものを含め — その対応するソースを同じ条件の下でユーザーに提供しなければなりません。