@jshookmcp/jshook 0.2.9 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/README.zh.md +2 -2
- package/dist/{AntiCheatDetector-BNk-EoBt.mjs → AntiCheatDetector-CqGDXmfc.mjs} +159 -53
- package/dist/{CodeInjector-Cq8q01kp.mjs → CodeInjector-BdjRfNx7.mjs} +5 -5
- package/dist/{ConsoleMonitor-CPVQW1Y-.mjs → ConsoleMonitor-DykL3IAw.mjs} +85 -17
- package/dist/{DetailedDataManager-BQQcxh64.mjs → DetailedDataManager-HT49OrvF.mjs} +1 -1
- package/dist/{ExtensionManager-CWYgw0YW.mjs → ExtensionManager-BDMsY2Dz.mjs} +15 -8
- package/dist/{HardwareBreakpoint-B9gZCdFP.mjs → HardwareBreakpoint-Cc2AFq1Y.mjs} +3 -3
- package/dist/{HeapAnalyzer-BLDH0dCv.mjs → HeapAnalyzer-DruMgsgj.mjs} +20 -20
- package/dist/{HookGeneratorBuilders.core.generators.storage-CtcdK78Q.mjs → HookGeneratorBuilders.core.generators.storage-CTbB4Lcx.mjs} +1 -74
- package/dist/{InstrumentationSession-CvPC7Jwy.mjs → InstrumentationSession-DLH0vd-z.mjs} +2 -2
- package/dist/{MemoryController-CbVdCIJF.mjs → MemoryController-CMtviNW_.mjs} +3 -3
- package/dist/{MemoryScanSession-BsDZbLYm.mjs → MemoryScanSession-ITgb_NMi.mjs} +2 -2
- package/dist/{MemoryScanner-Bcpml6II.mjs → MemoryScanner-CiL7Z3ey.mjs} +12 -9
- package/dist/{NativeMemoryManager.impl-dZtA1ZGn.mjs → NativeMemoryManager.impl-D9Lkovvn.mjs} +13 -10
- package/dist/{NativeMemoryManager.utils-B-FjA2mJ.mjs → NativeMemoryManager.utils-BBlAixF5.mjs} +1 -1
- package/dist/{PEAnalyzer-D1lzJ_VG.mjs → PEAnalyzer-DMQ44gen.mjs} +15 -15
- package/dist/{PageController-Bqm2kZ_X.mjs → PageController-BPJNqqBN.mjs} +18 -4
- package/dist/{PointerChainEngine-BOhyVsjx.mjs → PointerChainEngine-K7wN8Z-w.mjs} +10 -7
- package/dist/ProcessRegistry-zGg12QbE.mjs +74 -0
- package/dist/{ResponseBuilder-D3iFYx2N.mjs → ResponseBuilder-CJXWmWNw.mjs} +10 -10
- package/dist/{ScriptManager-aHHq0X7U.mjs → ScriptManager-ZuWD-0Jg.mjs} +195 -192
- package/dist/{Speedhack-CqdIFlQl.mjs → Speedhack-D-z0umeT.mjs} +2 -2
- package/dist/{StructureAnalyzer-DhFaPvRO.mjs → StructureAnalyzer-Cav5AVSL.mjs} +9 -6
- package/dist/{ToolCatalog-C0JGZoOm.mjs → ToolCatalog-5OJdMiF0.mjs} +81 -81
- package/dist/{ToolProbe-oC7aPrkv.mjs → ToolProbe-DbCFGyrg.mjs} +1 -1
- package/dist/{ToolRegistry-BjaF4oNz.mjs → ToolRegistry-B9krbTtI.mjs} +51 -2
- package/dist/{ToolRouter.policy-BWV67ZK-.mjs → ToolRouter.policy-BGDAGyeH.mjs} +60 -20
- package/dist/TraceRecorder-B41Z5XBj.mjs +1286 -0
- package/dist/{Win32API-CePkipZY.mjs → Win32API-C2kjj0ze.mjs} +18 -12
- package/dist/{Win32Debug-BvKs-gxc.mjs → Win32Debug-CKrGOTpo.mjs} +2 -2
- package/dist/{WorkflowEngine-CuvkZtWu.mjs → WorkflowEngine-DJ6M4opp.mjs} +226 -255
- package/dist/analysis-BHeJW2Nb.mjs +1234 -0
- package/dist/{antidebug-CqDTB_uk.mjs → antidebug-BRKeyt27.mjs} +3 -3
- package/dist/{artifactRetention-CFEprwPw.mjs → artifactRetention-CPXkUJXp.mjs} +13 -6
- package/dist/{artifacts-Bk2-_uPq.mjs → artifacts-DkfosXH3.mjs} +1 -1
- package/dist/authorization-schema-DRqyJMSk.mjs +31 -0
- package/dist/{binary-instrument-CXfpx6fT.mjs → binary-instrument--V3MAhJ4.mjs} +19 -27
- package/dist/bind-helpers-ClV34xdn.mjs +42 -0
- package/dist/{boringssl-inspector-BH2D3VKc.mjs → boringssl-inspector-Bo_LOLaS.mjs} +1 -1
- package/dist/{browser-BpOr5PEx.mjs → browser-Dx3_S2cG.mjs} +324 -37
- package/dist/capabilities-CcHlvWgK.mjs +33 -0
- package/dist/{constants-B0OANIBL.mjs → constants-CDZLOoVv.mjs} +18 -3
- package/dist/{coordination-qUbyF8KU.mjs → coordination-DgItD9DL.mjs} +2 -2
- package/dist/{debugger-gnKxRSN0.mjs → debugger-RS3RSAqs.mjs} +30 -13
- package/dist/definitions-BEoYofW5.mjs +47 -0
- package/dist/{definitions-bAhHQJq9.mjs → definitions-BRaefg3u.mjs} +11 -5
- package/dist/{definitions-DVGfrn7y.mjs → definitions-BbkvZkiv.mjs} +2 -2
- package/dist/definitions-BtWSHJ3o.mjs +17 -0
- package/dist/{definitions-BMfYXoNC.mjs → definitions-C1gCHO0i.mjs} +1 -1
- package/dist/{definitions-C1UvM5Iy.mjs → definitions-CDOg_b-l.mjs} +14 -2
- package/dist/definitions-CVPD9hzZ.mjs +54 -0
- package/dist/{definitions-Cke7zEb8.mjs → definitions-Cea8Lgl7.mjs} +1 -1
- package/dist/definitions-DAgIyjxM.mjs +10 -0
- package/dist/{definitions-B4rAvHNZ.mjs → definitions-DJA27nsL.mjs} +12 -9
- package/dist/{definitions-ClJLzsJQ.mjs → definitions-DKPFU3LW.mjs} +1 -1
- package/dist/{definitions-D3VsGcvz.mjs → definitions-DPRpZQ96.mjs} +7 -7
- package/dist/{definitions-B18eyf0B.mjs → definitions-DUE5gmdn.mjs} +1 -1
- package/dist/definitions-DYVjOtxa.mjs +26 -0
- package/dist/{definitions-BB_4jnmy.mjs → definitions-DcYLVLCo.mjs} +1 -1
- package/dist/{definitions-Beid2EB3.mjs → definitions-Pp5LI2H4.mjs} +1 -1
- package/dist/definitions-j9KdHVNR.mjs +14 -0
- package/dist/definitions-uzkjBwa7.mjs +258 -0
- package/dist/{definitions-Cq-zroAU.mjs → definitions-va-AnLuQ.mjs} +4 -4
- package/dist/{encoding-Bvz5jLRv.mjs → encoding-DJeqHmpd.mjs} +18 -4
- package/dist/{evidence-graph-bridge-C_fv9PuC.mjs → evidence-graph-bridge-DcYizFk2.mjs} +1 -0
- package/dist/{factory-DxlGh9Xf.mjs → factory-C90tBff6.mjs} +6 -6
- package/dist/flat-target-session-Dgax2Cy3.mjs +29 -0
- package/dist/{graphql-DYWzJ29s.mjs → graphql-CoHrhweh.mjs} +205 -34
- package/dist/{handlers-C67ktuRN.mjs → handlers-4jmR0nMs.mjs} +220 -32
- package/dist/{handlers-DlCJN4Td.mjs → handlers-BAHPxcch.mjs} +122 -90
- package/dist/{handlers-9sAbfIg-.mjs → handlers-BOs9b907.mjs} +849 -801
- package/dist/{handlers-DxGIq15_2.mjs → handlers-BWXEy6ef.mjs} +16 -16
- package/dist/{handlers-tB9Mp9ZK.mjs → handlers-Bndn6QvE.mjs} +31 -4
- package/dist/{handlers-CTsDAO6p.mjs → handlers-BqC4bD4s.mjs} +1 -1
- package/dist/{handlers-C87g8oCe.mjs → handlers-BtYq60bM2.mjs} +1 -1
- package/dist/{handlers-DeLOCd5m.mjs → handlers-BzgcB4iv.mjs} +17 -17
- package/dist/{handlers-Cgyg6c0U.mjs → handlers-CRyRWj2b.mjs} +237 -23
- package/dist/{handlers-U6L4xhuF.mjs → handlers-CVv2H1uq.mjs} +24 -17
- package/dist/{handlers-tiy7EIBp.mjs → handlers-Dl5a7JS4.mjs} +3 -3
- package/dist/{handlers-D6j6yka7.mjs → handlers-Dx2d7jt7.mjs} +1893 -1480
- package/dist/{handlers-Bl8zkwz1.mjs → handlers-Dz9PYsCa.mjs} +95 -6
- package/dist/handlers-HujRKC3b.mjs +661 -0
- package/dist/{handlers.impl-DS0d9fUw.mjs → handlers.impl-XWXkQfyi.mjs} +70 -24
- package/dist/{hooks-CzCWByww.mjs → hooks-B1B8NRHL.mjs} +3 -3
- package/dist/index.mjs +154 -144
- package/dist/{maintenance-P7ePRXQC.mjs → maintenance-PRMkLVRW.mjs} +35 -30
- package/dist/manifest-67Bok-Si.mjs +58 -0
- package/dist/{manifest-B3QVVeBS.mjs → manifest-6lNTMZAB2.mjs} +33 -28
- package/dist/manifest-B2duEHiH.mjs +90 -0
- package/dist/manifest-B6EY9Vm8.mjs +57 -0
- package/dist/{manifest-gZ4s_UtG.mjs → manifest-B6nKSbyY.mjs} +32 -33
- package/dist/{manifest-2ToTpjv8.mjs → manifest-BL8AQNPF.mjs} +31 -31
- package/dist/{manifest-DzwvxPJX.mjs → manifest-BSZvJJmV.mjs} +23 -14
- package/dist/{manifest-Sc_0JQ13.mjs → manifest-BU7qzUyX.mjs} +23 -23
- package/dist/{manifest-CT7zZBV1.mjs → manifest-Bl62e8WK.mjs} +24 -23
- package/dist/manifest-Bo5cXjdt.mjs +82 -0
- package/dist/manifest-BpS4gtUK.mjs +1347 -0
- package/dist/manifest-Bv65_e2W.mjs +101 -0
- package/dist/manifest-BytNIF4Z.mjs +117 -0
- package/dist/{manifest-BqrQ4Tpj.mjs → manifest-C-xtsjS3.mjs} +23 -23
- package/dist/{manifest-NXctwWQq.mjs → manifest-CDYl7OhA.mjs} +36 -38
- package/dist/manifest-CRZ3xmkD.mjs +61 -0
- package/dist/manifest-CoW6u4Tp.mjs +132 -0
- package/dist/manifest-Cq5zN_8A.mjs +50 -0
- package/dist/{manifest-CAhOuvSl.mjs → manifest-D7YZM_2e.mjs} +75 -85
- package/dist/{manifest-DCyjf4n2.mjs → manifest-DE_VrAeQ.mjs} +27 -7
- package/dist/manifest-DGsXSCpT.mjs +39 -0
- package/dist/{manifest-BB2J8IMJ.mjs → manifest-DJ2vfEuW.mjs} +48 -41
- package/dist/{manifest-3g71z6Bg.mjs → manifest-DPXDYhEu.mjs} +26 -25
- package/dist/manifest-Dd4fQb0a.mjs +322 -0
- package/dist/{manifest-CXsRWjjI.mjs → manifest-Deq6opGg.mjs} +95 -96
- package/dist/{manifest-C9RT5nk32.mjs → manifest-DfJTafJK.mjs} +14 -11
- package/dist/manifest-DgOdgN_j.mjs +50 -0
- package/dist/{manifest-BmtZzQiQ2.mjs → manifest-DlbMW4v4.mjs} +17 -15
- package/dist/{manifest-DrbmZcFl2.mjs → manifest-DmVfbH0w.mjs} +212 -91
- package/dist/manifest-Dog6Ddjr.mjs +109 -0
- package/dist/manifest-DvgU5FWb.mjs +58 -0
- package/dist/manifest-HsfDBs7j.mjs +50 -0
- package/dist/manifest-I8oQHvCG.mjs +186 -0
- package/dist/manifest-NvH_a-av.mjs +786 -0
- package/dist/{manifest-Dh8WBmEW.mjs → manifest-cEJU1v0Z.mjs} +24 -24
- package/dist/manifest-wOl5XLB12.mjs +112 -0
- package/dist/{modules-C184v-S9.mjs → modules-tZozf0LQ.mjs} +130 -860
- package/dist/{mojo-ipc-B_H61Afw.mjs → mojo-ipc-DXNEXEqb.mjs} +141 -26
- package/dist/{network-671Cw6hV.mjs → network-CPVvwvFg.mjs} +1329 -823
- package/dist/{outputPaths-B1uGmrWZ.mjs → outputPaths-um7lCRY3.mjs} +4 -8
- package/dist/{platform-WmNn8Sxb.mjs → platform-CYeFoTWp.mjs} +101 -10
- package/dist/{process-QcbIy5Zq.mjs → process-BTbgcVc6.mjs} +251 -346
- package/dist/{proxy-DqNs0bAd.mjs → proxy-r8YN6nP1.mjs} +30 -8
- package/dist/{registry-D-6e18lB.mjs → registry-Bl8ZQW61.mjs} +3 -3
- package/dist/{response-BQVP-xUn.mjs → response-CWhh2aLo.mjs} +7 -1
- package/dist/{shared-state-board-DV-dpHFJ.mjs → shared-state-board-BoZnSoj-.mjs} +2 -2
- package/dist/{sourcemap-Dq8ez8vS.mjs → sourcemap-BIDHUVXy.mjs} +350 -66
- package/dist/{streaming-BUQ0VJsg.mjs → streaming-Dal6utPp.mjs} +13 -13
- package/dist/{tool-builder-DCbIC5Eo.mjs → tool-builder-BHJp32mV.mjs} +1 -1
- package/dist/{transform-CiYJfNX0.mjs → transform-DRVgGG90.mjs} +18 -14
- package/dist/wasm-BYx5UOeG.mjs +1044 -0
- package/dist/webcrack-Be0_FccV.mjs +747 -0
- package/dist/{workflow-f3xJOcjx.mjs → workflow-BpuKEtvn.mjs} +8 -8
- package/package.json +76 -43
- package/dist/TraceRecorder-DgxyVbdQ.mjs +0 -519
- package/dist/analysis-CL9uACt9.mjs +0 -463
- package/dist/bind-helpers-xFfRF-qm.mjs +0 -22
- package/dist/definitions-6M-eejaT.mjs +0 -53
- package/dist/definitions-B3QdlrHv.mjs +0 -34
- package/dist/definitions-CXEI7QC72.mjs +0 -216
- package/dist/definitions-C_4r7Fo-2.mjs +0 -14
- package/dist/definitions-CkFDALoa.mjs +0 -26
- package/dist/definitions-Cy3Sl6gV.mjs +0 -34
- package/dist/definitions-LKpC3-nL.mjs +0 -9
- package/dist/handlers-DdFzXLvF.mjs +0 -446
- package/dist/manifest-82baTv4U.mjs +0 -45
- package/dist/manifest-BKbgbSiY.mjs +0 -60
- package/dist/manifest-Bcf-TJzH.mjs +0 -848
- package/dist/manifest-Bnd7kqEY.mjs +0 -55
- package/dist/manifest-BqQX6OQC2.mjs +0 -65
- package/dist/manifest-Br4RPFt5.mjs +0 -370
- package/dist/manifest-C5qDjysN.mjs +0 -107
- package/dist/manifest-CBYWCUBJ.mjs +0 -51
- package/dist/manifest-CFADCRa1.mjs +0 -37
- package/dist/manifest-CQVhavRF.mjs +0 -114
- package/dist/manifest-CV12bcrF.mjs +0 -121
- package/dist/manifest-CZLUCfG02.mjs +0 -95
- package/dist/manifest-D6phHKFd.mjs +0 -131
- package/dist/manifest-DHsnKgP6.mjs +0 -60
- package/dist/manifest-Df_dliIe.mjs +0 -55
- package/dist/manifest-DhKRAT8_.mjs +0 -92
- package/dist/manifest-DlpTj4ic2.mjs +0 -193
- package/dist/manifest-DuwHjUa5.mjs +0 -70
- package/dist/manifest-qSleDqdO.mjs +0 -1023
- package/dist/wasm-DQTnHDs4.mjs +0 -531
- /package/dist/{CacheAdapters-CDe5WPSV.mjs → CacheAdapters-jJFy20G-.mjs} +0 -0
- /package/dist/{DarwinAPI-BNPxu0RH.mjs → DarwinAPI-ETyy0xyo.mjs} +0 -0
- /package/dist/{EventBus-DgPmwpeu.mjs → EventBus-DFKvADm3.mjs} +0 -0
- /package/dist/{EvidenceGraphBridge-SFesNera.mjs → EvidenceGraphBridge-318Oi0Lf.mjs} +0 -0
- /package/dist/{FingerprintManager-gzWtkKuf.mjs → FingerprintManager-BN4UQWnX.mjs} +0 -0
- /package/dist/{PrerequisiteError-Dl33Svkz.mjs → PrerequisiteError-TuyZIs6n.mjs} +0 -0
- /package/dist/{ReverseEvidenceGraph-Dlsk94LC.mjs → ReverseEvidenceGraph-C02-gXOh.mjs} +0 -0
- /package/dist/{StealthVerifier-Bo4T3bz8.mjs → StealthVerifier-BWmPgQsv.mjs} +0 -0
- /package/dist/{VersionDetector-CwVLVdDM.mjs → VersionDetector-K3V4vGsw.mjs} +0 -0
- /package/dist/{betterSqlite3-0pqusHHH.mjs → betterSqlite3-DLSBZodi.mjs} +0 -0
- /package/dist/{concurrency-Bt0yv1kJ.mjs → concurrency-Drev_Vz9.mjs} +0 -0
- /package/dist/{formatAddress-DVkj9kpI.mjs → formatAddress-nnMvEohD.mjs} +0 -0
- /package/dist/{parse-args-BlRjqlkL.mjs → parse-args-B4cY5Vx5.mjs} +0 -0
- /package/dist/{ssrf-policy-ZaUfvhq7.mjs → ssrf-policy-Dsqd-DTX.mjs} +0 -0
- /package/dist/{types-CPhOReNX.mjs → types-DDBWs9UP.mjs} +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { n as toolLookup } from "./registry-
|
|
2
|
-
import {
|
|
3
|
-
import { t as tool } from "./tool-builder-
|
|
1
|
+
import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
|
|
2
|
+
import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
|
|
3
|
+
import { t as tool } from "./tool-builder-BHJp32mV.mjs";
|
|
4
4
|
//#region src/server/domains/mojo-ipc/definitions.ts
|
|
5
5
|
const mojoIpcTools = [
|
|
6
|
+
tool("mojo_ipc_capabilities", (t) => t.desc("Report Mojo IPC monitoring availability.").query()),
|
|
6
7
|
tool("mojo_monitor", (t) => t.desc("Start or stop Mojo IPC monitoring for the active Chromium-based target.").enum("action", ["start", "stop"], "Monitor action").string("deviceId", "Optional device or transport identifier (action=start)").required("action")),
|
|
7
8
|
tool("mojo_decode_message", (t) => t.desc("Decode a Mojo IPC hex payload into a structured field map").string("hexPayload", "Hex-encoded Mojo IPC payload").required("hexPayload").query()),
|
|
8
9
|
tool("mojo_list_interfaces", (t) => t.desc("List discovered Mojo IPC interfaces and their pending message counts").query()),
|
|
@@ -12,10 +13,35 @@ const mojoIpcTools = [
|
|
|
12
13
|
//#region src/server/domains/mojo-ipc/manifest.ts
|
|
13
14
|
const DOMAIN = "mojo-ipc";
|
|
14
15
|
const DEP_KEY = "mojoIpcHandlers";
|
|
15
|
-
const
|
|
16
|
-
|
|
16
|
+
const registrations = defineMethodRegistrations({
|
|
17
|
+
domain: DOMAIN,
|
|
18
|
+
depKey: DEP_KEY,
|
|
19
|
+
lookup: toolLookup(mojoIpcTools),
|
|
20
|
+
entries: [
|
|
21
|
+
{
|
|
22
|
+
tool: "mojo_ipc_capabilities",
|
|
23
|
+
method: "handleMojoIpcCapabilities"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
tool: "mojo_monitor",
|
|
27
|
+
method: "handleMojoMonitorDispatch"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
tool: "mojo_decode_message",
|
|
31
|
+
method: "handleMojoDecodeMessage"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
tool: "mojo_list_interfaces",
|
|
35
|
+
method: "handleMojoListInterfaces"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
tool: "mojo_messages_get",
|
|
39
|
+
method: "handleMojoMessagesGet"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
});
|
|
17
43
|
async function ensure(ctx) {
|
|
18
|
-
const { MojoIPCHandlers } = await import("./mojo-ipc-
|
|
44
|
+
const { MojoIPCHandlers } = await import("./mojo-ipc-DXNEXEqb.mjs");
|
|
19
45
|
const existingHandlers = ctx.getDomainInstance(DEP_KEY);
|
|
20
46
|
if (existingHandlers) return existingHandlers;
|
|
21
47
|
const handlers = new MojoIPCHandlers(void 0, void 0, ctx.eventBus);
|
|
@@ -28,28 +54,7 @@ const manifest = {
|
|
|
28
54
|
domain: DOMAIN,
|
|
29
55
|
depKey: DEP_KEY,
|
|
30
56
|
profiles: ["full"],
|
|
31
|
-
registrations
|
|
32
|
-
{
|
|
33
|
-
tool: toolByName("mojo_monitor"),
|
|
34
|
-
domain: DOMAIN,
|
|
35
|
-
bind: bind((handlers, args) => handlers.handleMojoMonitorDispatch(args))
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
tool: toolByName("mojo_decode_message"),
|
|
39
|
-
domain: DOMAIN,
|
|
40
|
-
bind: bind((handlers, args) => handlers.handleMojoDecodeMessage(args))
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
tool: toolByName("mojo_list_interfaces"),
|
|
44
|
-
domain: DOMAIN,
|
|
45
|
-
bind: bind((handlers) => handlers.handleMojoListInterfaces())
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
tool: toolByName("mojo_messages_get"),
|
|
49
|
-
domain: DOMAIN,
|
|
50
|
-
bind: bind((handlers, args) => handlers.handleMojoMessagesGet(args))
|
|
51
|
-
}
|
|
52
|
-
],
|
|
57
|
+
registrations,
|
|
53
58
|
ensure,
|
|
54
59
|
workflowRule: {
|
|
55
60
|
patterns: [/\b(mojo|ipc|chromium\s?(ipc|message)|interface\s?(broker|registry))\b/i, /(mojo|ipc|chromium).*(monitor|capture|hook|trace)/i],
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
|
|
2
|
+
import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
|
|
3
|
+
import { t as platformTools } from "./definitions-CVPD9hzZ.mjs";
|
|
4
|
+
//#region src/server/domains/platform/manifest.ts
|
|
5
|
+
const DOMAIN = "platform";
|
|
6
|
+
const DEP_KEY = "platformHandlers";
|
|
7
|
+
const registrations = defineMethodRegistrations({
|
|
8
|
+
domain: DOMAIN,
|
|
9
|
+
depKey: DEP_KEY,
|
|
10
|
+
lookup: toolLookup(platformTools),
|
|
11
|
+
entries: [
|
|
12
|
+
{
|
|
13
|
+
tool: "platform_capabilities",
|
|
14
|
+
method: "handlePlatformCapabilities"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
tool: "miniapp_pkg_scan",
|
|
18
|
+
method: "handleMiniappPkgScan"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
tool: "miniapp_pkg_unpack",
|
|
22
|
+
method: "handleMiniappPkgUnpack"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
tool: "miniapp_pkg_analyze",
|
|
26
|
+
method: "handleMiniappPkgAnalyze"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
tool: "asar_extract",
|
|
30
|
+
method: "handleAsarExtract"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
tool: "electron_inspect_app",
|
|
34
|
+
method: "handleElectronInspectApp"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
tool: "electron_scan_userdata",
|
|
38
|
+
method: "handleElectronScanUserdata"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
tool: "asar_search",
|
|
42
|
+
method: "handleAsarSearch"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
tool: "electron_check_fuses",
|
|
46
|
+
method: "handleElectronCheckFuses"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
tool: "electron_patch_fuses",
|
|
50
|
+
method: "handleElectronPatchFuses"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
tool: "v8_bytecode_decompile",
|
|
54
|
+
method: "handleV8BytecodeDecompile"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
tool: "electron_launch_debug",
|
|
58
|
+
method: "handleElectronLaunchDebug"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
tool: "electron_debug_status",
|
|
62
|
+
method: "handleElectronDebugStatus"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
tool: "electron_ipc_sniff",
|
|
66
|
+
method: "handleElectronIPCSniff"
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
});
|
|
70
|
+
async function ensure(ctx) {
|
|
71
|
+
const { CodeCollector } = await import("./modules-tZozf0LQ.mjs").then((n) => n.t);
|
|
72
|
+
const { PlatformToolHandlers } = await import("./platform-CYeFoTWp.mjs");
|
|
73
|
+
if (!ctx.collector) {
|
|
74
|
+
ctx.collector = new CodeCollector(ctx.config.puppeteer);
|
|
75
|
+
ctx.registerCaches();
|
|
76
|
+
}
|
|
77
|
+
if (!ctx.platformHandlers) ctx.platformHandlers = new PlatformToolHandlers(ctx.collector);
|
|
78
|
+
return ctx.platformHandlers;
|
|
79
|
+
}
|
|
80
|
+
const manifest = {
|
|
81
|
+
kind: "domain-manifest",
|
|
82
|
+
version: 1,
|
|
83
|
+
domain: DOMAIN,
|
|
84
|
+
depKey: DEP_KEY,
|
|
85
|
+
profiles: ["full"],
|
|
86
|
+
ensure,
|
|
87
|
+
registrations
|
|
88
|
+
};
|
|
89
|
+
//#endregion
|
|
90
|
+
export { manifest as default };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
|
|
2
|
+
import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
|
|
3
|
+
import { t as coordinationTools } from "./definitions-BtWSHJ3o.mjs";
|
|
4
|
+
//#region src/server/domains/coordination/manifest.ts
|
|
5
|
+
const DOMAIN = "coordination";
|
|
6
|
+
const DEP_KEY = "coordinationHandlers";
|
|
7
|
+
const registrations = defineMethodRegistrations({
|
|
8
|
+
domain: DOMAIN,
|
|
9
|
+
depKey: DEP_KEY,
|
|
10
|
+
lookup: toolLookup(coordinationTools),
|
|
11
|
+
entries: [
|
|
12
|
+
{
|
|
13
|
+
tool: "create_task_handoff",
|
|
14
|
+
method: "handleCreateTaskHandoff"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
tool: "complete_task_handoff",
|
|
18
|
+
method: "handleCompleteTaskHandoff"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
tool: "get_task_context",
|
|
22
|
+
method: "handleGetTaskContext"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
tool: "append_session_insight",
|
|
26
|
+
method: "handleAppendSessionInsight"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
tool: "save_page_snapshot",
|
|
30
|
+
method: "handleSavePageSnapshot"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
tool: "restore_page_snapshot",
|
|
34
|
+
method: "handleRestorePageSnapshot"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
tool: "list_page_snapshots",
|
|
38
|
+
method: "handleListPageSnapshots"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
});
|
|
42
|
+
async function ensure(ctx) {
|
|
43
|
+
const { CoordinationHandlers } = await import("./coordination-DgItD9DL.mjs");
|
|
44
|
+
if (!ctx.coordinationHandlers) ctx.coordinationHandlers = new CoordinationHandlers(ctx);
|
|
45
|
+
return ctx.coordinationHandlers;
|
|
46
|
+
}
|
|
47
|
+
const manifest = {
|
|
48
|
+
kind: "domain-manifest",
|
|
49
|
+
version: 1,
|
|
50
|
+
domain: DOMAIN,
|
|
51
|
+
depKey: DEP_KEY,
|
|
52
|
+
profiles: ["full"],
|
|
53
|
+
ensure,
|
|
54
|
+
registrations
|
|
55
|
+
};
|
|
56
|
+
//#endregion
|
|
57
|
+
export { manifest as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as toolLookup } from "./registry-
|
|
2
|
-
import {
|
|
3
|
-
import { t as tool } from "./tool-builder-
|
|
1
|
+
import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
|
|
2
|
+
import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
|
|
3
|
+
import { t as tool } from "./tool-builder-BHJp32mV.mjs";
|
|
4
4
|
//#region src/server/domains/extension-registry/definitions.ts
|
|
5
5
|
const extensionRegistryTools = [
|
|
6
6
|
tool("extension_list_installed", (t) => t.desc("List installed extensions from the local extension registry").query()),
|
|
@@ -26,10 +26,35 @@ const extensionRegistryTools = [
|
|
|
26
26
|
//#region src/server/domains/extension-registry/manifest.ts
|
|
27
27
|
const DOMAIN = "extension-registry";
|
|
28
28
|
const DEP_KEY = "extensionRegistryHandlers";
|
|
29
|
-
const
|
|
30
|
-
|
|
29
|
+
const registrations = defineMethodRegistrations({
|
|
30
|
+
domain: DOMAIN,
|
|
31
|
+
depKey: DEP_KEY,
|
|
32
|
+
lookup: toolLookup(extensionRegistryTools),
|
|
33
|
+
entries: [
|
|
34
|
+
{
|
|
35
|
+
tool: "extension_list_installed",
|
|
36
|
+
method: "handleListInstalled"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
tool: "extension_execute_in_context",
|
|
40
|
+
method: "handleExecuteInContext"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
tool: "extension_reload",
|
|
44
|
+
method: "handleReload"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
tool: "extension_uninstall",
|
|
48
|
+
method: "handleUninstall"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
tool: "webhook",
|
|
52
|
+
method: "handleWebhookDispatch"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
});
|
|
31
56
|
async function ensure(ctx) {
|
|
32
|
-
const { ExtensionRegistryHandlers } = await import("./handlers-
|
|
57
|
+
const { ExtensionRegistryHandlers } = await import("./handlers-BzgcB4iv.mjs");
|
|
33
58
|
const existing = ctx.getDomainInstance(DEP_KEY);
|
|
34
59
|
if (existing) return existing;
|
|
35
60
|
const handlers = new ExtensionRegistryHandlers();
|
|
@@ -44,33 +69,7 @@ const manifest = {
|
|
|
44
69
|
depKey: DEP_KEY,
|
|
45
70
|
profiles: ["full"],
|
|
46
71
|
ensure,
|
|
47
|
-
registrations
|
|
48
|
-
{
|
|
49
|
-
tool: t("extension_list_installed"),
|
|
50
|
-
domain: DOMAIN,
|
|
51
|
-
bind: b((handlers) => handlers.handleListInstalled())
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
tool: t("extension_execute_in_context"),
|
|
55
|
-
domain: DOMAIN,
|
|
56
|
-
bind: b((handlers, args) => handlers.handleExecuteInContext(args))
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
tool: t("extension_reload"),
|
|
60
|
-
domain: DOMAIN,
|
|
61
|
-
bind: b((handlers, args) => handlers.handleReload(args))
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
tool: t("extension_uninstall"),
|
|
65
|
-
domain: DOMAIN,
|
|
66
|
-
bind: b((handlers, args) => handlers.handleUninstall(args))
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
tool: t("webhook"),
|
|
70
|
-
domain: DOMAIN,
|
|
71
|
-
bind: b((handlers, args) => handlers.handleWebhookDispatch(args))
|
|
72
|
-
}
|
|
73
|
-
],
|
|
72
|
+
registrations,
|
|
74
73
|
workflowRule: {
|
|
75
74
|
patterns: [/\b(extension|plugin|addon|webhook|c2|bluetooth|ble|hid|serial|esp32|registry)\b/i, /(install|uninstall|reload).*(extension|plugin)/i],
|
|
76
75
|
priority: 70,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as toolLookup, t as ensureBrowserCore } from "./registry-
|
|
2
|
-
import {
|
|
3
|
-
import { t as tool } from "./tool-builder-
|
|
1
|
+
import { n as toolLookup, t as ensureBrowserCore } from "./registry-Bl8ZQW61.mjs";
|
|
2
|
+
import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
|
|
3
|
+
import { t as tool } from "./tool-builder-BHJp32mV.mjs";
|
|
4
4
|
//#region src/server/domains/canvas/definitions.ts
|
|
5
5
|
const canvasTools = [
|
|
6
6
|
tool("canvas_engine_fingerprint", (t) => t.desc("Detect Canvas/WebGL game engine instances running in the page (LayaAir, PixiJ...").query()),
|
|
@@ -16,13 +16,34 @@ const canvasTools = [
|
|
|
16
16
|
//#region src/server/domains/canvas/manifest.ts
|
|
17
17
|
const DOMAIN = "canvas";
|
|
18
18
|
const DEP_KEY = "canvasHandlers";
|
|
19
|
-
const
|
|
20
|
-
|
|
19
|
+
const registrations = defineMethodRegistrations({
|
|
20
|
+
domain: DOMAIN,
|
|
21
|
+
depKey: DEP_KEY,
|
|
22
|
+
lookup: toolLookup(canvasTools),
|
|
23
|
+
entries: [
|
|
24
|
+
{
|
|
25
|
+
tool: "canvas_engine_fingerprint",
|
|
26
|
+
method: "handleFingerprint"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
tool: "canvas_scene_dump",
|
|
30
|
+
method: "handleSceneDump"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
tool: "canvas_pick_object_at_point",
|
|
34
|
+
method: "handlePick"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
tool: "canvas_trace_click_handler",
|
|
38
|
+
method: "handleTraceClick"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
});
|
|
21
42
|
async function ensure(ctx) {
|
|
22
|
-
const { DebuggerManager } = await import("./modules-
|
|
23
|
-
const { TraceRecorder } = await import("./TraceRecorder-
|
|
24
|
-
const { ReverseEvidenceGraph } = await import("./ReverseEvidenceGraph-
|
|
25
|
-
const { CanvasToolHandlers } = await import("./handlers-
|
|
43
|
+
const { DebuggerManager } = await import("./modules-tZozf0LQ.mjs").then((n) => n.t);
|
|
44
|
+
const { TraceRecorder } = await import("./TraceRecorder-B41Z5XBj.mjs");
|
|
45
|
+
const { ReverseEvidenceGraph } = await import("./ReverseEvidenceGraph-C02-gXOh.mjs").then((n) => n.t);
|
|
46
|
+
const { CanvasToolHandlers } = await import("./handlers-Dz9PYsCa.mjs");
|
|
26
47
|
await ensureBrowserCore(ctx);
|
|
27
48
|
if (!ctx.debuggerManager) ctx.debuggerManager = new DebuggerManager(ctx.collector);
|
|
28
49
|
if (!ctx.traceRecorder) ctx.traceRecorder = new TraceRecorder();
|
|
@@ -79,28 +100,7 @@ const manifest = {
|
|
|
79
100
|
fix: "Call debugger_lifecycle({ action: 'enable' }) first"
|
|
80
101
|
}]
|
|
81
102
|
},
|
|
82
|
-
registrations
|
|
83
|
-
{
|
|
84
|
-
tool: t("canvas_engine_fingerprint"),
|
|
85
|
-
domain: DOMAIN,
|
|
86
|
-
bind: b((h, a) => h.handleFingerprint(a))
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
tool: t("canvas_scene_dump"),
|
|
90
|
-
domain: DOMAIN,
|
|
91
|
-
bind: b((h, a) => h.handleSceneDump(a))
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
tool: t("canvas_pick_object_at_point"),
|
|
95
|
-
domain: DOMAIN,
|
|
96
|
-
bind: b((h, a) => h.handlePick(a))
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
tool: t("canvas_trace_click_handler"),
|
|
100
|
-
domain: DOMAIN,
|
|
101
|
-
bind: b((h, a) => h.handleTraceClick(a))
|
|
102
|
-
}
|
|
103
|
-
]
|
|
103
|
+
registrations
|
|
104
104
|
};
|
|
105
105
|
//#endregion
|
|
106
106
|
export { manifest as default };
|
|
@@ -1,14 +1,31 @@
|
|
|
1
|
-
import { n as toolLookup, t as ensureBrowserCore } from "./registry-
|
|
2
|
-
import { n as
|
|
3
|
-
import { n as hookPresetTools, t as aiHookTools } from "./definitions-
|
|
1
|
+
import { n as toolLookup, t as ensureBrowserCore } from "./registry-Bl8ZQW61.mjs";
|
|
2
|
+
import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
|
|
3
|
+
import { n as hookPresetTools, t as aiHookTools } from "./definitions-C1gCHO0i.mjs";
|
|
4
4
|
//#region src/server/domains/hooks/manifest.ts
|
|
5
5
|
const DOMAIN = "hooks";
|
|
6
6
|
const DEP_KEY = "aiHookHandlers";
|
|
7
7
|
const DEP_KEY_PRESET = "hookPresetHandlers";
|
|
8
8
|
const t = toolLookup([...aiHookTools, ...hookPresetTools]);
|
|
9
|
-
const
|
|
9
|
+
const aiRegistrations = defineMethodRegistrations({
|
|
10
|
+
domain: DOMAIN,
|
|
11
|
+
depKey: DEP_KEY,
|
|
12
|
+
lookup: t,
|
|
13
|
+
entries: [{
|
|
14
|
+
tool: "ai_hook",
|
|
15
|
+
method: "handleAIHook"
|
|
16
|
+
}]
|
|
17
|
+
});
|
|
18
|
+
const presetRegistrations = defineMethodRegistrations({
|
|
19
|
+
domain: DOMAIN,
|
|
20
|
+
depKey: DEP_KEY_PRESET,
|
|
21
|
+
lookup: t,
|
|
22
|
+
entries: [{
|
|
23
|
+
tool: "hook_preset",
|
|
24
|
+
method: "handleHookPreset"
|
|
25
|
+
}]
|
|
26
|
+
});
|
|
10
27
|
async function ensure(ctx) {
|
|
11
|
-
const { AIHookToolHandlers, HookPresetToolHandlers } = await import("./hooks-
|
|
28
|
+
const { AIHookToolHandlers, HookPresetToolHandlers } = await import("./hooks-B1B8NRHL.mjs");
|
|
12
29
|
await ensureBrowserCore(ctx);
|
|
13
30
|
if (!ctx.aiHookHandlers || !ctx.hookPresetHandlers) {
|
|
14
31
|
if (!ctx.aiHookHandlers) ctx.aiHookHandlers = new AIHookToolHandlers(ctx.pageController);
|
|
@@ -24,15 +41,7 @@ const manifest = {
|
|
|
24
41
|
secondaryDepKeys: ["hookPresetHandlers"],
|
|
25
42
|
profiles: ["full"],
|
|
26
43
|
ensure,
|
|
27
|
-
registrations: [
|
|
28
|
-
tool: t("ai_hook"),
|
|
29
|
-
domain: DOMAIN,
|
|
30
|
-
bind: b((h, a) => h.handleAIHook(a))
|
|
31
|
-
}, {
|
|
32
|
-
tool: t("hook_preset"),
|
|
33
|
-
domain: DOMAIN,
|
|
34
|
-
bind: (deps) => (args) => getDep(deps, DEP_KEY_PRESET).handleHookPreset(args)
|
|
35
|
-
}]
|
|
44
|
+
registrations: [...aiRegistrations, ...presetRegistrations]
|
|
36
45
|
};
|
|
37
46
|
//#endregion
|
|
38
47
|
export { manifest as default };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as createProgressDebouncer } from "./EventBus-
|
|
2
|
-
import { t as tool } from "./tool-builder-
|
|
1
|
+
import { t as createProgressDebouncer } from "./EventBus-DFKvADm3.mjs";
|
|
2
|
+
import { t as tool } from "./tool-builder-BHJp32mV.mjs";
|
|
3
3
|
//#region src/server/domains/memory/definitions.ts
|
|
4
4
|
const ScanValueTypeOptions = [
|
|
5
5
|
"byte",
|
|
@@ -29,7 +29,7 @@ const ScanCompareModeOptions = [
|
|
|
29
29
|
"not_equal"
|
|
30
30
|
];
|
|
31
31
|
const memoryScanToolDefinitions = [
|
|
32
|
-
tool("memory_first_scan", (t) => t.desc("Start a new memory scan session.").string("value", "Value to search for (as string, e.g. \"100\", \"3.14\", \"48 65 6C 6C 6F\")").enum("valueType", [...ScanValueTypeOptions], "Data type of the value").number("alignment", "Alignment in bytes (0=unaligned, 4=4-byte aligned). Default: natural alignment for the type.").number("maxResults", "Maximum results to return (default: 1,000,000)").prop("regionFilter", {
|
|
32
|
+
tool("memory_first_scan", (t) => t.desc("Start a new memory scan session.").number("pid", "Target process ID").string("value", "Value to search for (as string, e.g. \"100\", \"3.14\", \"48 65 6C 6C 6F\")").enum("valueType", [...ScanValueTypeOptions], "Data type of the value").number("alignment", "Alignment in bytes (0=unaligned, 4=4-byte aligned). Default: natural alignment for the type.").number("maxResults", "Maximum results to return (default: 1,000,000)").prop("regionFilter", {
|
|
33
33
|
type: "object",
|
|
34
34
|
properties: {
|
|
35
35
|
writable: {
|
|
@@ -47,8 +47,8 @@ const memoryScanToolDefinitions = [
|
|
|
47
47
|
},
|
|
48
48
|
description: "Filter which memory regions to scan"
|
|
49
49
|
}).requiredOpenWorld("pid", "value", "valueType")),
|
|
50
|
-
tool("memory_next_scan", (t) => t.desc("Narrow an existing scan session.").enum("mode", [...ScanCompareModeOptions], "Comparison mode").string("value", "Target value for exact/greater_than/less_than/between/not_equal modes").string("value2", "Upper bound value for \"between\" mode").requiredOpenWorld("sessionId", "mode")),
|
|
51
|
-
tool("memory_unknown_scan", (t) => t.desc("Start an unknown initial value scan.").enum("valueType", [...ScanValueTypeOptions], "Data type to capture").number("alignment", "Alignment in bytes (default: natural for type)").number("maxResults", "Maximum addresses to capture (default: 5,000,000)").prop("regionFilter", {
|
|
50
|
+
tool("memory_next_scan", (t) => t.desc("Narrow an existing scan session.").string("sessionId", "Scan session ID").enum("mode", [...ScanCompareModeOptions], "Comparison mode").string("value", "Target value for exact/greater_than/less_than/between/not_equal modes").string("value2", "Upper bound value for \"between\" mode").requiredOpenWorld("sessionId", "mode")),
|
|
51
|
+
tool("memory_unknown_scan", (t) => t.desc("Start an unknown initial value scan.").number("pid", "Target process ID").enum("valueType", [...ScanValueTypeOptions], "Data type to capture").number("alignment", "Alignment in bytes (default: natural for type)").number("maxResults", "Maximum addresses to capture (default: 5,000,000)").prop("regionFilter", {
|
|
52
52
|
type: "object",
|
|
53
53
|
properties: {
|
|
54
54
|
writable: { type: "boolean" },
|
|
@@ -56,8 +56,8 @@ const memoryScanToolDefinitions = [
|
|
|
56
56
|
moduleOnly: { type: "boolean" }
|
|
57
57
|
}
|
|
58
58
|
}).requiredOpenWorld("pid", "valueType")),
|
|
59
|
-
tool("memory_pointer_scan", (t) => t.desc("Find pointers to a target address.").string("targetAddress", "Target address to find pointers to (hex, e.g. \"0x7FF612340000\")").number("maxResults", "Maximum results (default: 10,000)").boolean("moduleOnly", "Only scan module-backed regions").required("pid", "targetAddress").query().openWorld()),
|
|
60
|
-
tool("memory_group_scan", (t) => t.desc("Search for multiple values at known offsets simultaneously.").array("pattern", {
|
|
59
|
+
tool("memory_pointer_scan", (t) => t.desc("Find pointers to a target address.").number("pid", "Target process ID").string("targetAddress", "Target address to find pointers to (hex, e.g. \"0x7FF612340000\")").number("maxResults", "Maximum results (default: 10,000)").boolean("moduleOnly", "Only scan module-backed regions").required("pid", "targetAddress").query().openWorld()),
|
|
60
|
+
tool("memory_group_scan", (t) => t.desc("Search for multiple values at known offsets simultaneously.").number("pid", "Target process ID").array("pattern", {
|
|
61
61
|
type: "object",
|
|
62
62
|
properties: {
|
|
63
63
|
offset: {
|
|
@@ -97,7 +97,7 @@ Actions:
|
|
|
97
97
|
"resolve",
|
|
98
98
|
"export"
|
|
99
99
|
], "Chain operation").number("pid", "Target process ID").string("targetAddress", "Target address hex (action=scan)").number("maxDepth", "Max chain depth 1-6 (action=scan, default: 4)").number("maxOffset", "Max offset per level in bytes (action=scan, default: 4096)").boolean("staticOnly", "Only module-relative chains (action=scan, default: false)").array("modules", { type: "string" }, "Only scan specific modules (action=scan)").number("maxResults", "Max chains to return (action=scan, default: 1000)").string("chains", "JSON PointerChain[] (action=validate/export)").string("chain", "JSON single PointerChain (action=resolve)").required("action")),
|
|
100
|
-
tool("memory_structure_analyze", (t) => t.desc("Analyze memory at an address to infer data structure layout.").string("address", "Base address of the structure (hex)").number("size", "Size to analyze in bytes (default: 256)").array("otherInstances", { type: "string" }, "Additional instance addresses for cross-comparison").boolean("parseRtti", "Whether to attempt RTTI parsing (default: true)").required("pid", "address").query()),
|
|
100
|
+
tool("memory_structure_analyze", (t) => t.desc("Analyze memory at an address to infer data structure layout.").number("pid", "Target process ID").string("address", "Base address of the structure (hex)").number("size", "Size to analyze in bytes (default: 256)").array("otherInstances", { type: "string" }, "Additional instance addresses for cross-comparison").boolean("parseRtti", "Whether to attempt RTTI parsing (default: true)").required("pid", "address").query()),
|
|
101
101
|
tool("memory_vtable_parse", (t) => t.desc("Parse a vtable to enumerate virtual function pointers and resolve them to module+offset. Also attempts RTTI parsing for class name and inheritance hierarchy.").number("pid", "Target process ID").string("vtableAddress", "Address of the vtable (hex)").required("pid", "vtableAddress").query()),
|
|
102
102
|
tool("memory_structure_export_c", (t) => t.desc("Export an inferred structure as a C-style struct definition with offset comments and type annotations.").string("structure", "JSON string of InferredStruct to export").string("name", "Struct name (defaults to RTTI class name or \"UnknownStruct\")").required("structure").query()),
|
|
103
103
|
tool("memory_structure_compare", (t) => t.desc("Compare two structure instances to identify which fields differ (dynamic values like health/position) vs which are constant (vtable, type flags). Useful for finding important fields.").number("pid", "Target process ID").string("address1", "First instance address (hex)").string("address2", "Second instance address (hex)").number("size", "Size to compare in bytes (default: 256)").required("pid", "address1", "address2").query()),
|
|
@@ -122,7 +122,7 @@ Actions:
|
|
|
122
122
|
tool("memory_patch_nop", (t) => t.desc("NOP out instructions at address (replace with 0x90). Useful for disabling checks or jumps.").number("pid", "Target process ID").string("address", "Address to NOP (hex)").number("count", "Number of bytes to NOP").required("pid", "address", "count").destructive()),
|
|
123
123
|
tool("memory_patch_undo", (t) => t.desc("Undo a previous patch by restoring the original bytes.").string("patchId", "Patch ID to undo").required("patchId").destructive()),
|
|
124
124
|
tool("memory_code_caves", (t) => t.desc("Find code caves (runs of 0x00 or 0xCC) in executable sections of loaded modules. Returns largest caves first.").number("pid", "Target process ID").number("minSize", "Minimum cave size in bytes (default: 16)").required("pid").query()),
|
|
125
|
-
tool("memory_write_value", (t) => t.desc("Write a typed value to a memory address. Supports undo via
|
|
125
|
+
tool("memory_write_value", (t) => t.desc("Write a typed value to a memory address. Supports undo/redo via memory_write_history(action=undo|redo).").number("pid", "Target process ID").string("address", "Address to write to (hex)").string("value", "Value to write (as string)").enum("valueType", [...ScanValueTypeOptions], "Data type of the value").required("pid", "address", "value", "valueType").destructive()),
|
|
126
126
|
tool("memory_freeze", (t) => t.desc(`Freeze or unfreeze a memory address. Freeze continuously writes a value to prevent changes; unfreeze stops it.`).enum("action", ["freeze", "unfreeze"], "Freeze operation").number("pid", "Target process ID (action=freeze)").string("address", "Address to freeze hex (action=freeze)").string("value", "Value to maintain (action=freeze)").enum("valueType", [...ScanValueTypeOptions], "Data type (action=freeze)").number("intervalMs", "Write interval ms (action=freeze, default: 100)").string("freezeId", "Freeze ID to remove (action=unfreeze)").required("action").destructive()),
|
|
127
127
|
tool("memory_dump", (t) => t.desc("Dump memory region as hex with ASCII column. Outputs a formatted hex dump similar to xxd.").number("pid", "Target process ID").string("address", "Start address (hex)").number("size", "Size to dump in bytes (default: 256)").required("pid", "address").query()),
|
|
128
128
|
tool("memory_speedhack", (t) => t.desc(`Speedhack: hook time APIs to scale process time. Speed 2.0 = 2x faster, 0.5 = half speed.
|
|
@@ -152,25 +152,25 @@ const DEP_KEY = "memoryScanHandlers";
|
|
|
152
152
|
const IS_WIN32 = (process.env.JSHOOK_REGISTRY_PLATFORM === "win32" || process.env.JSHOOK_REGISTRY_PLATFORM === "linux" || process.env.JSHOOK_REGISTRY_PLATFORM === "darwin" ? process.env.JSHOOK_REGISTRY_PLATFORM : process.platform) === "win32";
|
|
153
153
|
let globalContext = null;
|
|
154
154
|
async function ensure(ctx) {
|
|
155
|
-
const { MemoryScanHandlers } = await import("./handlers.impl-
|
|
155
|
+
const { MemoryScanHandlers } = await import("./handlers.impl-XWXkQfyi.mjs");
|
|
156
156
|
globalContext = ctx;
|
|
157
157
|
const ctxAny = ctx;
|
|
158
158
|
if (ctxAny[DEP_KEY]) return ctxAny[DEP_KEY];
|
|
159
159
|
const [memoryScanner, scanSessionManager, pointerChainEngine, structureAnalyzer, codeInjector, memoryController] = await Promise.all([
|
|
160
|
-
import("./MemoryScanner-
|
|
161
|
-
import("./MemoryScanSession-
|
|
162
|
-
import("./PointerChainEngine-
|
|
163
|
-
import("./StructureAnalyzer-
|
|
164
|
-
import("./CodeInjector-
|
|
165
|
-
import("./MemoryController-
|
|
160
|
+
import("./MemoryScanner-CiL7Z3ey.mjs"),
|
|
161
|
+
import("./MemoryScanSession-ITgb_NMi.mjs"),
|
|
162
|
+
import("./PointerChainEngine-K7wN8Z-w.mjs"),
|
|
163
|
+
import("./StructureAnalyzer-Cav5AVSL.mjs"),
|
|
164
|
+
import("./CodeInjector-BdjRfNx7.mjs"),
|
|
165
|
+
import("./MemoryController-CMtviNW_.mjs")
|
|
166
166
|
]);
|
|
167
167
|
if (IS_WIN32) {
|
|
168
168
|
const [hardwareBreakpointEngine, speedhack, heapAnalyzer, peAnalyzer, antiCheatDetector] = await Promise.all([
|
|
169
|
-
import("./HardwareBreakpoint-
|
|
170
|
-
import("./Speedhack-
|
|
171
|
-
import("./HeapAnalyzer-
|
|
172
|
-
import("./PEAnalyzer-
|
|
173
|
-
import("./AntiCheatDetector-
|
|
169
|
+
import("./HardwareBreakpoint-Cc2AFq1Y.mjs"),
|
|
170
|
+
import("./Speedhack-D-z0umeT.mjs"),
|
|
171
|
+
import("./HeapAnalyzer-DruMgsgj.mjs"),
|
|
172
|
+
import("./PEAnalyzer-DMQ44gen.mjs"),
|
|
173
|
+
import("./AntiCheatDetector-CqGDXmfc.mjs")
|
|
174
174
|
]);
|
|
175
175
|
ctxAny[DEP_KEY] = new MemoryScanHandlers(memoryScanner.memoryScanner, scanSessionManager.scanSessionManager, pointerChainEngine.pointerChainEngine, structureAnalyzer.structureAnalyzer, hardwareBreakpointEngine.hardwareBreakpointEngine, codeInjector.codeInjector, memoryController.memoryController, speedhack.speedhack, heapAnalyzer.heapAnalyzer, peAnalyzer.peAnalyzer, antiCheatDetector.antiCheatDetector, ctx.eventBus);
|
|
176
176
|
} else ctxAny[DEP_KEY] = new MemoryScanHandlers(memoryScanner.memoryScanner, scanSessionManager.scanSessionManager, pointerChainEngine.pointerChainEngine, structureAnalyzer.structureAnalyzer, null, codeInjector.codeInjector, memoryController.memoryController, null, null, null, null, ctx.eventBus);
|
|
@@ -180,9 +180,9 @@ function bindByKey(invoke) {
|
|
|
180
180
|
return (deps) => {
|
|
181
181
|
const handler = deps[DEP_KEY];
|
|
182
182
|
return (args) => {
|
|
183
|
-
const
|
|
183
|
+
const meta = args._meta;
|
|
184
184
|
let onProgress;
|
|
185
|
-
if (
|
|
185
|
+
if (meta?.progressToken !== void 0 && globalContext) onProgress = createProgressDebouncer(globalContext.eventBus, meta.progressToken);
|
|
186
186
|
return invoke(handler, {
|
|
187
187
|
...args,
|
|
188
188
|
onProgress
|
|
@@ -1,14 +1,31 @@
|
|
|
1
|
-
import { n as toolLookup } from "./registry-
|
|
2
|
-
import {
|
|
3
|
-
import { t as sharedStateBoardTools } from "./definitions-
|
|
1
|
+
import { n as toolLookup } from "./registry-Bl8ZQW61.mjs";
|
|
2
|
+
import { n as defineMethodRegistrations } from "./bind-helpers-ClV34xdn.mjs";
|
|
3
|
+
import { t as sharedStateBoardTools } from "./definitions-DYVjOtxa.mjs";
|
|
4
4
|
import { resolve } from "node:path";
|
|
5
5
|
//#region src/server/domains/shared-state-board/manifest.ts
|
|
6
6
|
const DOMAIN = "shared-state-board";
|
|
7
7
|
const DEP_KEY = "sharedStateBoardHandlers";
|
|
8
|
-
const
|
|
9
|
-
|
|
8
|
+
const registrations = defineMethodRegistrations({
|
|
9
|
+
domain: DOMAIN,
|
|
10
|
+
depKey: DEP_KEY,
|
|
11
|
+
lookup: toolLookup(sharedStateBoardTools),
|
|
12
|
+
entries: [
|
|
13
|
+
{
|
|
14
|
+
tool: "state_board",
|
|
15
|
+
method: "handleDispatch"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
tool: "state_board_watch",
|
|
19
|
+
method: "handleWatchDispatch"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
tool: "state_board_io",
|
|
23
|
+
method: "handleIODispatch"
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
});
|
|
10
27
|
async function ensure(ctx) {
|
|
11
|
-
const { SharedStateBoardHandlers } = await import("./shared-state-board-
|
|
28
|
+
const { SharedStateBoardHandlers } = await import("./shared-state-board-BoZnSoj-.mjs");
|
|
12
29
|
if (!ctx.sharedStateBoardHandlers) ctx.sharedStateBoardHandlers = new SharedStateBoardHandlers();
|
|
13
30
|
const scheduler = ctx.getDomainInstance("snapshotScheduler");
|
|
14
31
|
const stateDir = ctx.getDomainInstance("snapshotStateDir");
|
|
@@ -26,23 +43,7 @@ const manifest = {
|
|
|
26
43
|
depKey: DEP_KEY,
|
|
27
44
|
profiles: ["workflow", "full"],
|
|
28
45
|
ensure,
|
|
29
|
-
registrations
|
|
30
|
-
{
|
|
31
|
-
tool: t("state_board"),
|
|
32
|
-
domain: DOMAIN,
|
|
33
|
-
bind: b((h, a) => h.handleDispatch(a))
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
tool: t("state_board_watch"),
|
|
37
|
-
domain: DOMAIN,
|
|
38
|
-
bind: b((h, a) => h.handleWatchDispatch(a))
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
tool: t("state_board_io"),
|
|
42
|
-
domain: DOMAIN,
|
|
43
|
-
bind: b((h, a) => h.handleIODispatch(a))
|
|
44
|
-
}
|
|
45
|
-
]
|
|
46
|
+
registrations
|
|
46
47
|
};
|
|
47
48
|
//#endregion
|
|
48
49
|
export { manifest as default };
|