@jshookmcp/jshook 0.2.3 → 0.2.6
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 +14 -5
- package/README.zh.md +18 -3
- package/dist/packages/extension-sdk/src/bridges/shared.js +2 -2
- package/dist/packages/extension-sdk/src/plugin.d.ts +5 -0
- package/dist/packages/extension-sdk/src/plugin.js +119 -33
- package/dist/packages/extension-sdk/src/workflow.d.ts +171 -0
- package/dist/packages/extension-sdk/src/workflow.js +272 -0
- package/dist/src/config/search-defaults.js +161 -0
- package/dist/src/constants.d.ts +3 -0
- package/dist/src/constants.js +4 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +13 -17
- package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -3
- package/dist/src/modules/analyzer/CodeAnalyzer.js +16 -28
- package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.d.ts +1 -2
- package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +1 -45
- package/dist/src/modules/analyzer/IntelligentAnalyzer.d.ts +1 -37
- package/dist/src/modules/analyzer/IntelligentAnalyzer.js +9 -142
- package/dist/src/modules/analyzer/PatternDetector.js +3 -3
- package/dist/src/modules/analyzer/PatternDetectorAuthPatterns.js +1 -1
- package/dist/src/modules/browser/BrowserDiscovery.js +2 -2
- package/dist/src/modules/browser/BrowserModeManager.js +11 -10
- package/dist/src/modules/browser/BrowserPool.d.ts +49 -0
- package/dist/src/modules/browser/BrowserPool.js +288 -0
- package/dist/src/modules/browser/TabRegistry.js +2 -2
- package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
- package/dist/src/modules/browser/UnifiedBrowserManager.js +18 -3
- package/dist/src/modules/captcha/AICaptchaDetector.d.ts +1 -10
- package/dist/src/modules/captcha/AICaptchaDetector.js +7 -201
- package/dist/src/modules/collector/CodeCollector.js +4 -5
- package/dist/src/modules/collector/DOMInspector.js +48 -58
- package/dist/src/modules/collector/PageController.d.ts +17 -4
- package/dist/src/modules/collector/PageController.js +2 -5
- package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
- package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
- package/dist/src/modules/crypto/CryptoDetector.js +2 -42
- package/dist/src/modules/crypto/CryptoRules.js +1 -1
- package/dist/src/modules/debugger/BlackboxManager.js +1 -1
- package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
- package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +4 -2
- package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
- package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.d.ts +5 -0
- package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.js +43 -2
- package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
- package/dist/src/modules/deobfuscator/Deobfuscator.js +9 -39
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +1 -2
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +3 -55
- package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
- package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
- package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
- package/dist/src/modules/deobfuscator/webcrack.js +15 -2
- package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
- package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
- package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
- package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
- package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
- package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
- package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
- package/dist/src/modules/external/ExternalToolRunner.js +25 -22
- package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.compose.js +5 -5
- package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.network.js +311 -311
- package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.runtime.js +410 -410
- package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.storage.js +122 -122
- package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +13 -0
- package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
- package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +194 -194
- package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
- package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
- package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
- package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +62 -62
- package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
- package/dist/src/modules/process/LinuxProcessManager.js +2 -0
- package/dist/src/modules/process/MacProcessManager.js +25 -25
- package/dist/src/modules/process/MemoryManager.d.ts +1 -1
- package/dist/src/modules/process/MemoryManager.js +2 -2
- package/dist/src/modules/process/memory/AuditTrail.js +1 -1
- package/dist/src/modules/process/memory/availability.js +49 -49
- package/dist/src/modules/process/memory/injector.js +185 -185
- package/dist/src/modules/process/memory/reader.js +85 -53
- package/dist/src/modules/process/memory/regions.dump.js +51 -51
- package/dist/src/modules/process/memory/regions.enumerate.js +108 -108
- package/dist/src/modules/process/memory/regions.modules.js +80 -80
- package/dist/src/modules/process/memory/regions.protection.js +148 -115
- package/dist/src/modules/process/memory/scanner.d.ts +5 -1
- package/dist/src/modules/process/memory/scanner.darwin.js +98 -41
- package/dist/src/modules/process/memory/scanner.js +88 -4
- package/dist/src/modules/process/memory/scanner.windows.js +124 -124
- package/dist/src/modules/process/memory/writer.js +98 -58
- package/dist/src/modules/security/ExecutionSandbox.js +51 -52
- package/dist/src/modules/stealth/FingerprintManager.js +1 -1
- package/dist/src/modules/stealth/StealthScripts.d.ts +1 -0
- package/dist/src/modules/stealth/StealthScripts.js +18 -13
- package/dist/src/modules/stealth/StealthVerifier.js +1 -3
- package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
- package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
- package/dist/src/modules/trace/TraceDB.js +75 -69
- package/dist/src/modules/trace/TraceRecorder.js +1 -5
- package/dist/src/native/AntiCheatDetector.js +67 -16
- package/dist/src/native/CodeInjector.js +3 -3
- package/dist/src/native/HardwareBreakpoint.js +24 -15
- package/dist/src/native/HeapAnalyzer.js +2 -2
- package/dist/src/native/MemoryController.js +1 -1
- package/dist/src/native/MemoryScanSession.js +2 -2
- package/dist/src/native/MemoryScanner.js +4 -8
- package/dist/src/native/NativeMemoryManager.impl.js +2 -2
- package/dist/src/native/PEAnalyzer.js +14 -15
- package/dist/src/native/PointerChainEngine.js +2 -4
- package/dist/src/native/ScriptLoader.js +4 -9
- package/dist/src/native/Speedhack.js +1 -1
- package/dist/src/native/StructureAnalyzer.js +52 -33
- package/dist/src/native/Win32API.d.ts +1 -0
- package/dist/src/native/Win32API.js +13 -0
- package/dist/src/native/Win32Debug.js +19 -19
- package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
- package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
- package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
- package/dist/src/server/MCPServer.context.d.ts +3 -1
- package/dist/src/server/MCPServer.d.ts +2 -1
- package/dist/src/server/MCPServer.domain.d.ts +1 -1
- package/dist/src/server/MCPServer.domain.js +81 -16
- package/dist/src/server/MCPServer.js +41 -14
- package/dist/src/server/MCPServer.resources.d.ts +2 -0
- package/dist/src/server/MCPServer.resources.js +91 -0
- package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
- package/dist/src/server/MCPServer.search.helpers.js +1 -1
- package/dist/src/server/MCPServer.transport.js +12 -0
- package/dist/src/server/ToolCallContextGuard.js +8 -0
- package/dist/src/server/ToolRouter.d.ts +25 -9
- package/dist/src/server/ToolRouter.intent.d.ts +26 -0
- package/dist/src/server/ToolRouter.intent.js +77 -0
- package/dist/src/server/ToolRouter.js +103 -284
- package/dist/src/server/ToolRouter.policy.d.ts +22 -0
- package/dist/src/server/ToolRouter.policy.js +163 -0
- package/dist/src/server/ToolRouter.probe.d.ts +17 -0
- package/dist/src/server/ToolRouter.probe.js +103 -0
- package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
- package/dist/src/server/ToolRouter.renderer.js +52 -0
- package/dist/src/server/activation/ActivationController.js +15 -12
- package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
- package/dist/src/server/activation/PredictiveBooster.js +1 -3
- package/dist/src/server/domains/analysis/definitions.js +155 -655
- package/dist/src/server/domains/analysis/handlers.impl.js +26 -20
- package/dist/src/server/domains/analysis/handlers.web-tools.js +2 -1
- package/dist/src/server/domains/analysis/manifest.js +6 -4
- package/dist/src/server/domains/antidebug/definitions.js +25 -111
- package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
- package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
- package/dist/src/server/domains/browser/definitions.tools.page-core.js +210 -439
- package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
- package/dist/src/server/domains/browser/definitions.tools.runtime.js +98 -211
- package/dist/src/server/domains/browser/definitions.tools.security.js +194 -339
- package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
- package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
- package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
- package/dist/src/server/domains/browser/handlers/framework-state.js +27 -9
- package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
- package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
- package/dist/src/server/domains/browser/handlers/stealth-injection.d.ts +1 -0
- package/dist/src/server/domains/browser/handlers/stealth-injection.js +3 -0
- package/dist/src/server/domains/browser/handlers.impl.d.ts +1 -2
- package/dist/src/server/domains/browser/handlers.impl.js +2 -3
- package/dist/src/server/domains/browser/manifest.js +37 -13
- package/dist/src/server/domains/coordination/definitions.js +50 -216
- package/dist/src/server/domains/coordination/index.d.ts +2 -1
- package/dist/src/server/domains/coordination/index.js +1 -0
- package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
- package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
- package/dist/src/server/domains/debugger/manifest.js +9 -2
- package/dist/src/server/domains/encoding/definitions.js +43 -153
- package/dist/src/server/domains/encoding/handlers.base.js +2 -2
- package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
- package/dist/src/server/domains/evidence/definitions.js +42 -0
- package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
- package/dist/src/server/domains/evidence/handlers.js +60 -0
- package/dist/src/server/domains/evidence/index.d.ts +2 -0
- package/dist/src/server/domains/evidence/index.js +2 -0
- package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
- package/dist/src/server/domains/evidence/manifest.js +78 -0
- package/dist/src/server/domains/graphql/definitions.js +53 -141
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +77 -77
- package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
- package/dist/src/server/domains/hooks/ai-handlers.js +1 -67
- package/dist/src/server/domains/hooks/definitions.js +69 -335
- package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
- package/dist/src/server/domains/hooks/manifest.js +1 -2
- package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
- package/dist/src/server/domains/instrumentation/definitions.js +99 -0
- package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
- package/dist/src/server/domains/instrumentation/handlers.js +206 -0
- package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
- package/dist/src/server/domains/instrumentation/index.js +2 -0
- package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
- package/dist/src/server/domains/instrumentation/manifest.js +114 -0
- package/dist/src/server/domains/macro/definitions.js +16 -43
- package/dist/src/server/domains/maintenance/definitions.js +60 -219
- package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
- package/dist/src/server/domains/memory/definitions.js +387 -559
- package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
- package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
- package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
- package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
- package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
- package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
- package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
- package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
- package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
- package/dist/src/server/domains/memory/handlers/scan.js +97 -0
- package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
- package/dist/src/server/domains/memory/handlers/session.js +49 -0
- package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
- package/dist/src/server/domains/memory/handlers/structure.js +74 -0
- package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
- package/dist/src/server/domains/memory/handlers.impl.js +63 -494
- package/dist/src/server/domains/memory/manifest.js +236 -64
- package/dist/src/server/domains/native-bridge/definitions.js +54 -192
- package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
- package/dist/src/server/domains/native-bridge/index.js +2 -1
- package/dist/src/server/domains/network/auth-extractor.js +1 -1
- package/dist/src/server/domains/network/definitions.js +175 -578
- package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
- package/dist/src/server/domains/network/handlers.base.core.js +623 -0
- package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
- package/dist/src/server/domains/network/handlers.base.js +3 -878
- package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
- package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
- package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
- package/dist/src/server/domains/network/handlers.base.types.js +89 -0
- package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
- package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
- package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
- package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
- package/dist/src/server/domains/network/manifest.js +15 -0
- package/dist/src/server/domains/network/replay.js +1 -4
- package/dist/src/server/domains/platform/definitions.js +121 -112
- package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +4 -0
- package/dist/src/server/domains/platform/handlers/bridge-handlers.js +193 -4
- package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
- package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
- package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
- package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
- package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
- package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
- package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
- package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
- package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
- package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
- package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
- package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +3 -3
- package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
- package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
- package/dist/src/server/domains/platform/handlers.d.ts +48 -0
- package/dist/src/server/domains/platform/handlers.js +29 -0
- package/dist/src/server/domains/platform/manifest.js +38 -0
- package/dist/src/server/domains/process/definitions.js +163 -647
- package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
- package/dist/src/server/domains/process/handlers.base.js +7 -462
- package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
- package/dist/src/server/domains/process/handlers.base.process.js +417 -0
- package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
- package/dist/src/server/domains/process/handlers.base.types.js +50 -0
- package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +18 -16
- package/dist/src/server/domains/process/manifest.js +6 -1
- package/dist/src/server/domains/sandbox/definitions.js +11 -33
- package/dist/src/server/domains/sandbox/handlers.js +8 -3
- package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
- package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
- package/dist/src/server/domains/shared/modules.d.ts +0 -2
- package/dist/src/server/domains/shared/modules.js +0 -1
- package/dist/src/server/domains/shared-state-board/definitions.d.ts +2 -0
- package/dist/src/server/domains/shared-state-board/definitions.js +78 -0
- package/dist/src/server/domains/shared-state-board/handlers.impl.d.ts +58 -0
- package/dist/src/server/domains/shared-state-board/handlers.impl.js +419 -0
- package/dist/src/server/domains/shared-state-board/index.d.ts +2 -0
- package/dist/src/server/domains/shared-state-board/index.js +2 -0
- package/dist/src/server/domains/shared-state-board/manifest.d.ts +57 -0
- package/dist/src/server/domains/shared-state-board/manifest.js +74 -0
- package/dist/src/server/domains/sourcemap/definitions.js +27 -111
- package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
- package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
- package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
- package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
- package/dist/src/server/domains/sourcemap/manifest.js +1 -1
- package/dist/src/server/domains/streaming/definitions.js +36 -148
- package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
- package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
- package/dist/src/server/domains/trace/TraceSummarizer.js +8 -5
- package/dist/src/server/domains/trace/definitions.tools.js +51 -206
- package/dist/src/server/domains/trace/handlers.js +10 -12
- package/dist/src/server/domains/trace/index.d.ts +2 -1
- package/dist/src/server/domains/trace/index.js +2 -1
- package/dist/src/server/domains/trace/manifest.js +15 -3
- package/dist/src/server/domains/transform/definitions.js +50 -210
- package/dist/src/server/domains/transform/handlers.impl.transform-base.js +108 -108
- package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
- package/dist/src/server/domains/transform/manifest.d.ts +1 -1
- package/dist/src/server/domains/transform/manifest.js +1 -1
- package/dist/src/server/domains/wasm/definitions.js +55 -232
- package/dist/src/server/domains/wasm/handlers.js +1 -1
- package/dist/src/server/domains/workflow/definitions.js +144 -414
- package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +1 -1
- package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +51 -51
- package/dist/src/server/domains/workflow/handlers.impl.workflow-base.d.ts +2 -0
- package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
- package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
- package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
- package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
- package/dist/src/server/evidence/index.d.ts +2 -0
- package/dist/src/server/evidence/index.js +1 -0
- package/dist/src/server/evidence/types.d.ts +22 -0
- package/dist/src/server/evidence/types.js +1 -0
- package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
- package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
- package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
- package/dist/src/server/extensions/ExtensionManager.js +193 -40
- package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
- package/dist/src/server/extensions/ExtensionManager.roots.js +4 -4
- package/dist/src/server/extensions/plugin-config.js +1 -1
- package/dist/src/server/extensions/plugin-env.d.ts +1 -1
- package/dist/src/server/extensions/plugin-env.js +10 -4
- package/dist/src/server/extensions/types.d.ts +17 -0
- package/dist/src/server/extensions/types.js +1 -1
- package/dist/src/server/http/SseStream.d.ts +21 -0
- package/dist/src/server/http/SseStream.js +129 -0
- package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
- package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
- package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
- package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
- package/dist/src/server/instrumentation/index.d.ts +2 -0
- package/dist/src/server/instrumentation/index.js +2 -0
- package/dist/src/server/instrumentation/types.d.ts +62 -0
- package/dist/src/server/instrumentation/types.js +7 -0
- package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
- package/dist/src/server/macros/MacroConfigLoader.js +61 -59
- package/dist/src/server/macros/MacroRunner.js +6 -2
- package/dist/src/server/macros/builtins/index.d.ts +2 -3
- package/dist/src/server/macros/builtins/index.js +51 -7
- package/dist/src/server/plugins/PluginContract.d.ts +1 -1
- package/dist/src/server/registry/contracts.d.ts +1 -1
- package/dist/src/server/registry/discovery.js +5 -4
- package/dist/src/server/registry/ensure-browser-core.js +0 -3
- package/dist/src/server/registry/index.js +4 -4
- package/dist/src/server/registry/tool-builder.d.ts +46 -0
- package/dist/src/server/registry/tool-builder.js +105 -0
- package/dist/src/server/sandbox/QuickJSSandbox.js +16 -5
- package/dist/src/server/sandbox/SandboxHelpers.js +250 -250
- package/dist/src/server/search/EmbeddingWorker.js +5 -3
- package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
- package/dist/src/server/search/FeedbackTracker.js +26 -0
- package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
- package/dist/src/server/search/QueryNormalizer.js +94 -0
- package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
- package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
- package/dist/src/server/teams/TeamManager.d.ts +43 -0
- package/dist/src/server/teams/TeamManager.js +238 -0
- package/dist/src/server/teams/index.d.ts +1 -0
- package/dist/src/server/teams/index.js +1 -0
- package/dist/src/server/workflows/WorkflowContract.d.ts +44 -4
- package/dist/src/server/workflows/WorkflowContract.js +52 -0
- package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
- package/dist/src/server/workflows/WorkflowEngine.js +314 -4
- package/dist/src/types/config.d.ts +0 -14
- package/dist/src/types/deobfuscator.d.ts +1 -1
- package/dist/src/types/index.d.ts +1 -1
- package/dist/src/utils/DetailedDataManager.js +2 -0
- package/dist/src/utils/RingBuffer.js +5 -5
- package/dist/src/utils/TokenBudgetManager.js +1 -1
- package/dist/src/utils/UnifiedCacheManager.js +1 -1
- package/dist/src/utils/artifactRetention.js +2 -2
- package/dist/src/utils/betterSqlite3.d.ts +11 -0
- package/dist/src/utils/betterSqlite3.js +88 -0
- package/dist/src/utils/browserExecutable.js +2 -2
- package/dist/src/utils/cache/CachedDecorator.d.ts +8 -0
- package/dist/src/utils/cache/CachedDecorator.js +55 -0
- package/dist/src/utils/cache/PersistentCache.d.ts +33 -0
- package/dist/src/utils/cache/PersistentCache.js +246 -0
- package/dist/src/utils/cache/index.d.ts +2 -0
- package/dist/src/utils/cache/index.js +2 -0
- package/dist/src/utils/cliFastPath.js +5 -8
- package/dist/src/utils/config.js +4 -26
- package/dist/src/utils/environmentDoctor.js +138 -11
- package/dist/src/utils/outputPaths.js +16 -9
- package/dist/src/utils/parallel.js +1 -3
- package/package.json +82 -81
- package/scripts/postinstall.cjs +54 -27
- package/workflows/.gitkeep +0 -0
- package/workflows/anti-bot-diagnoser/.jshook-install.json +14 -0
- package/workflows/anti-bot-diagnoser/LICENSE +21 -0
- package/workflows/anti-bot-diagnoser/README.md +105 -0
- package/workflows/anti-bot-diagnoser/docs/agent-recipes.md +44 -0
- package/workflows/anti-bot-diagnoser/meta.yaml +6 -0
- package/workflows/anti-bot-diagnoser/package.json +22 -0
- package/workflows/anti-bot-diagnoser/tsconfig.json +15 -0
- package/workflows/anti-bot-diagnoser/workflow.ts +224 -0
- package/workflows/api-openapi-probe/.jshook-install.json +14 -0
- package/workflows/api-openapi-probe/meta.yaml +6 -0
- package/workflows/api-openapi-probe/package.json +22 -0
- package/workflows/api-openapi-probe/pnpm-lock.yaml +819 -0
- package/workflows/api-openapi-probe/tsconfig.json +15 -0
- package/workflows/api-openapi-probe/workflow.ts +40 -0
- package/workflows/api-probe-batch/.jshook-install.json +14 -0
- package/workflows/api-probe-batch/LICENSE +21 -0
- package/workflows/api-probe-batch/README.md +45 -0
- package/workflows/api-probe-batch/meta.yaml +4 -0
- package/workflows/api-probe-batch/package.json +23 -0
- package/workflows/api-probe-batch/tsconfig.json +16 -0
- package/workflows/api-probe-batch/workflow.ts +111 -0
- package/workflows/auth-bootstrap/.jshook-install.json +14 -0
- package/workflows/auth-bootstrap/LICENSE +21 -0
- package/workflows/auth-bootstrap/README.md +74 -0
- package/workflows/auth-bootstrap/meta.yaml +4 -0
- package/workflows/auth-bootstrap/package.json +23 -0
- package/workflows/auth-bootstrap/tsconfig.json +16 -0
- package/workflows/auth-bootstrap/workflow.ts +141 -0
- package/workflows/auth-extract/.jshook-install.json +14 -0
- package/workflows/auth-extract/meta.yaml +6 -0
- package/workflows/auth-extract/package.json +22 -0
- package/workflows/auth-extract/pnpm-lock.yaml +819 -0
- package/workflows/auth-extract/tsconfig.json +15 -0
- package/workflows/auth-extract/workflow.ts +36 -0
- package/workflows/auth-surface-mapper/.jshook-install.json +14 -0
- package/workflows/auth-surface-mapper/meta.yaml +6 -0
- package/workflows/auth-surface-mapper/package.json +22 -0
- package/workflows/auth-surface-mapper/pnpm-lock.yaml +819 -0
- package/workflows/auth-surface-mapper/tsconfig.json +15 -0
- package/workflows/auth-surface-mapper/workflow.ts +104 -0
- package/workflows/batch-register/.jshook-install.json +14 -0
- package/workflows/batch-register/LICENSE +21 -0
- package/workflows/batch-register/README.md +39 -0
- package/workflows/batch-register/meta.yaml +4 -0
- package/workflows/batch-register/package.json +23 -0
- package/workflows/batch-register/tsconfig.json +16 -0
- package/workflows/batch-register/workflow.ts +67 -0
- package/workflows/bundle-recovery/.jshook-install.json +14 -0
- package/workflows/bundle-recovery/LICENSE +21 -0
- package/workflows/bundle-recovery/README.md +105 -0
- package/workflows/bundle-recovery/docs/agent-recipes.md +44 -0
- package/workflows/bundle-recovery/meta.yaml +6 -0
- package/workflows/bundle-recovery/package.json +22 -0
- package/workflows/bundle-recovery/tsconfig.json +15 -0
- package/workflows/bundle-recovery/workflow.ts +179 -0
- package/workflows/challenge-detector/.jshook-install.json +14 -0
- package/workflows/challenge-detector/meta.yaml +14 -0
- package/workflows/challenge-detector/package.json +22 -0
- package/workflows/challenge-detector/pnpm-lock.yaml +819 -0
- package/workflows/challenge-detector/tsconfig.json +15 -0
- package/workflows/challenge-detector/workflow.ts +298 -0
- package/workflows/deobfuscation-pipeline/.jshook-install.json +14 -0
- package/workflows/deobfuscation-pipeline/meta.yaml +6 -0
- package/workflows/deobfuscation-pipeline/package.json +22 -0
- package/workflows/deobfuscation-pipeline/pnpm-lock.yaml +819 -0
- package/workflows/deobfuscation-pipeline/tsconfig.json +15 -0
- package/workflows/deobfuscation-pipeline/workflow.ts +119 -0
- package/workflows/electron-bridge-mapper/.jshook-install.json +14 -0
- package/workflows/electron-bridge-mapper/meta.yaml +6 -0
- package/workflows/electron-bridge-mapper/package.json +22 -0
- package/workflows/electron-bridge-mapper/pnpm-lock.yaml +819 -0
- package/workflows/electron-bridge-mapper/tsconfig.json +15 -0
- package/workflows/electron-bridge-mapper/workflow.ts +125 -0
- package/workflows/evidence-pack/.jshook-install.json +14 -0
- package/workflows/evidence-pack/LICENSE +21 -0
- package/workflows/evidence-pack/README.md +105 -0
- package/workflows/evidence-pack/docs/agent-recipes.md +44 -0
- package/workflows/evidence-pack/meta.yaml +6 -0
- package/workflows/evidence-pack/package.json +22 -0
- package/workflows/evidence-pack/tsconfig.json +15 -0
- package/workflows/evidence-pack/workflow.ts +154 -0
- package/workflows/js-bundle-search/.jshook-install.json +14 -0
- package/workflows/js-bundle-search/LICENSE +21 -0
- package/workflows/js-bundle-search/README.md +46 -0
- package/workflows/js-bundle-search/meta.yaml +4 -0
- package/workflows/js-bundle-search/package.json +23 -0
- package/workflows/js-bundle-search/tsconfig.json +16 -0
- package/workflows/js-bundle-search/workflow.ts +118 -0
- package/workflows/protocol-registry/.jshook-install.json +14 -0
- package/workflows/protocol-registry/meta.yaml +6 -0
- package/workflows/protocol-registry/package.json +22 -0
- package/workflows/protocol-registry/pnpm-lock.yaml +819 -0
- package/workflows/protocol-registry/tsconfig.json +15 -0
- package/workflows/protocol-registry/workflow.ts +107 -0
- package/workflows/qwen-mail-open-latest/meta.yaml +7 -0
- package/workflows/qwen-mail-open-latest/package.json +22 -0
- package/workflows/qwen-mail-open-latest/pnpm-lock.yaml +819 -0
- package/workflows/qwen-mail-open-latest/tsconfig.json +15 -0
- package/workflows/qwen-mail-open-latest/workflow.ts +77 -0
- package/workflows/register-account-flow/.jshook-install.json +14 -0
- package/workflows/register-account-flow/LICENSE +21 -0
- package/workflows/register-account-flow/README.md +64 -0
- package/workflows/register-account-flow/meta.yaml +4 -0
- package/workflows/register-account-flow/package.json +23 -0
- package/workflows/register-account-flow/tsconfig.json +16 -0
- package/workflows/register-account-flow/workflow.ts +127 -0
- package/workflows/replay-lab/.jshook-install.json +14 -0
- package/workflows/replay-lab/meta.yaml +6 -0
- package/workflows/replay-lab/package.json +22 -0
- package/workflows/replay-lab/pnpm-lock.yaml +819 -0
- package/workflows/replay-lab/tsconfig.json +15 -0
- package/workflows/replay-lab/workflow.ts +106 -0
- package/workflows/script-evidence-scan/.jshook-install.json +14 -0
- package/workflows/script-evidence-scan/LICENSE +21 -0
- package/workflows/script-evidence-scan/README.md +61 -0
- package/workflows/script-evidence-scan/meta.yaml +4 -0
- package/workflows/script-evidence-scan/package.json +23 -0
- package/workflows/script-evidence-scan/tsconfig.json +16 -0
- package/workflows/script-evidence-scan/workflow.ts +89 -0
- package/workflows/signature-hunter/.jshook-install.json +14 -0
- package/workflows/signature-hunter/LICENSE +21 -0
- package/workflows/signature-hunter/README.md +105 -0
- package/workflows/signature-hunter/docs/agent-recipes.md +44 -0
- package/workflows/signature-hunter/meta.yaml +6 -0
- package/workflows/signature-hunter/package.json +22 -0
- package/workflows/signature-hunter/tsconfig.json +15 -0
- package/workflows/signature-hunter/workflow.ts +170 -0
- package/workflows/signing-lineage/.jshook-install.json +14 -0
- package/workflows/signing-lineage/meta.yaml +6 -0
- package/workflows/signing-lineage/package.json +22 -0
- package/workflows/signing-lineage/pnpm-lock.yaml +819 -0
- package/workflows/signing-lineage/tsconfig.json +15 -0
- package/workflows/signing-lineage/workflow.ts +120 -0
- package/workflows/temp-mail-extract-link/.jshook-install.json +14 -0
- package/workflows/temp-mail-extract-link/LICENSE +21 -0
- package/workflows/temp-mail-extract-link/README.md +71 -0
- package/workflows/temp-mail-extract-link/meta.yaml +4 -0
- package/workflows/temp-mail-extract-link/package.json +23 -0
- package/workflows/temp-mail-extract-link/tsconfig.json +16 -0
- package/workflows/temp-mail-extract-link/workflow.ts +221 -0
- package/workflows/temp-mail-open-latest/.jshook-install.json +14 -0
- package/workflows/temp-mail-open-latest/LICENSE +21 -0
- package/workflows/temp-mail-open-latest/README.md +61 -0
- package/workflows/temp-mail-open-latest/meta.yaml +4 -0
- package/workflows/temp-mail-open-latest/package.json +23 -0
- package/workflows/temp-mail-open-latest/tsconfig.json +16 -0
- package/workflows/temp-mail-open-latest/workflow.ts +136 -0
- package/workflows/template/.jshook-install.json +14 -0
- package/workflows/template/LICENSE +21 -0
- package/workflows/template/README.md +45 -0
- package/workflows/template/docs/SKILL.md +111 -0
- package/workflows/template/meta.yaml +6 -0
- package/workflows/template/package.json +22 -0
- package/workflows/template/pnpm-lock.yaml +819 -0
- package/workflows/template/tsconfig.json +15 -0
- package/workflows/template/workflow.ts +73 -0
- package/workflows/web-api-capture-session/.jshook-install.json +14 -0
- package/workflows/web-api-capture-session/LICENSE +21 -0
- package/workflows/web-api-capture-session/README.md +64 -0
- package/workflows/web-api-capture-session/meta.yaml +4 -0
- package/workflows/web-api-capture-session/package.json +23 -0
- package/workflows/web-api-capture-session/tsconfig.json +16 -0
- package/workflows/web-api-capture-session/workflow.ts +124 -0
- package/workflows/ws-protocol-lifter/.jshook-install.json +14 -0
- package/workflows/ws-protocol-lifter/LICENSE +21 -0
- package/workflows/ws-protocol-lifter/README.md +105 -0
- package/workflows/ws-protocol-lifter/docs/agent-recipes.md +44 -0
- package/workflows/ws-protocol-lifter/meta.yaml +6 -0
- package/workflows/ws-protocol-lifter/package.json +22 -0
- package/workflows/ws-protocol-lifter/tsconfig.json +15 -0
- package/workflows/ws-protocol-lifter/workflow.ts +163 -0
- package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
- package/dist/src/modules/analyzer/AISummarizer.js +0 -122
- package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
- package/dist/src/modules/hook/AIHookGenerator.js +0 -360
- package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
- package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
- package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
- package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
- package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
- package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
- package/dist/src/services/LLMService.d.ts +0 -37
- package/dist/src/services/LLMService.js +0 -233
- package/dist/src/services/prompts/analysis.d.ts +0 -9
- package/dist/src/services/prompts/analysis.js +0 -158
- package/dist/src/services/prompts/crypto.d.ts +0 -2
- package/dist/src/services/prompts/crypto.js +0 -108
- package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
- package/dist/src/services/prompts/deobfuscation.js +0 -300
- package/dist/src/services/prompts/environment.d.ts +0 -16
- package/dist/src/services/prompts/environment.js +0 -372
- package/dist/src/services/prompts/intelligence.d.ts +0 -4
- package/dist/src/services/prompts/intelligence.js +0 -250
- package/dist/src/services/prompts/taint.d.ts +0 -2
- package/dist/src/services/prompts/taint.js +0 -54
|
@@ -1,561 +1,389 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const
|
|
3
|
-
'byte',
|
|
4
|
-
'
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
'
|
|
8
|
-
'
|
|
9
|
-
'
|
|
10
|
-
|
|
1
|
+
import { tool } from '../../registry/tool-builder.js';
|
|
2
|
+
const ScanValueTypeOptions = [
|
|
3
|
+
'byte',
|
|
4
|
+
'int8',
|
|
5
|
+
'int16',
|
|
6
|
+
'uint16',
|
|
7
|
+
'int32',
|
|
8
|
+
'uint32',
|
|
9
|
+
'int64',
|
|
10
|
+
'uint64',
|
|
11
|
+
'float',
|
|
12
|
+
'double',
|
|
13
|
+
'string',
|
|
14
|
+
'hex',
|
|
15
|
+
'pointer',
|
|
16
|
+
];
|
|
17
|
+
const ScanCompareModeOptions = [
|
|
18
|
+
'exact',
|
|
19
|
+
'unknown_initial',
|
|
20
|
+
'changed',
|
|
21
|
+
'unchanged',
|
|
22
|
+
'increased',
|
|
23
|
+
'decreased',
|
|
24
|
+
'greater_than',
|
|
25
|
+
'less_than',
|
|
26
|
+
'between',
|
|
27
|
+
'not_equal',
|
|
28
|
+
];
|
|
11
29
|
export const memoryScanToolDefinitions = [
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
},
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
description: 'Freeze an address to a value. Continuously writes the value at an interval to prevent changes.',
|
|
372
|
-
inputSchema: {
|
|
373
|
-
type: 'object',
|
|
374
|
-
properties: {
|
|
375
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
376
|
-
address: { type: 'string', description: 'Address to freeze (hex)' },
|
|
377
|
-
value: { type: 'string', description: 'Value to maintain' },
|
|
378
|
-
valueType: { type: 'string', enum: ScanValueTypeEnum.options, description: 'Data type' },
|
|
379
|
-
intervalMs: { type: 'number', description: 'Write interval in ms (default: 100)' },
|
|
380
|
-
},
|
|
381
|
-
required: ['pid', 'address', 'value', 'valueType'],
|
|
382
|
-
},
|
|
383
|
-
},
|
|
384
|
-
{
|
|
385
|
-
name: 'memory_unfreeze',
|
|
386
|
-
description: 'Stop freezing a previously frozen address.',
|
|
387
|
-
inputSchema: {
|
|
388
|
-
type: 'object',
|
|
389
|
-
properties: {
|
|
390
|
-
freezeId: { type: 'string', description: 'Freeze ID to remove' },
|
|
391
|
-
},
|
|
392
|
-
required: ['freezeId'],
|
|
393
|
-
},
|
|
394
|
-
},
|
|
395
|
-
{
|
|
396
|
-
name: 'memory_dump',
|
|
397
|
-
description: 'Dump memory region as hex with ASCII column. Outputs a formatted hex dump similar to xxd.',
|
|
398
|
-
inputSchema: {
|
|
399
|
-
type: 'object',
|
|
400
|
-
properties: {
|
|
401
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
402
|
-
address: { type: 'string', description: 'Start address (hex)' },
|
|
403
|
-
size: { type: 'number', description: 'Size to dump in bytes (default: 256)' },
|
|
404
|
-
},
|
|
405
|
-
required: ['pid', 'address'],
|
|
406
|
-
},
|
|
407
|
-
},
|
|
408
|
-
{
|
|
409
|
-
name: 'memory_speedhack_apply',
|
|
410
|
-
description: 'Apply speedhack to a process. Hooks time APIs (GetTickCount64, QueryPerformanceCounter) to scale time. Speed 2.0 = 2x faster, 0.5 = half speed.',
|
|
411
|
-
inputSchema: {
|
|
412
|
-
type: 'object',
|
|
413
|
-
properties: {
|
|
414
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
415
|
-
speed: { type: 'number', description: 'Speed multiplier (e.g. 2.0 for 2x speed)' },
|
|
416
|
-
},
|
|
417
|
-
required: ['pid', 'speed'],
|
|
418
|
-
},
|
|
419
|
-
},
|
|
420
|
-
{
|
|
421
|
-
name: 'memory_speedhack_set',
|
|
422
|
-
description: 'Adjust the speed multiplier of an active speedhack without re-hooking.',
|
|
423
|
-
inputSchema: {
|
|
424
|
-
type: 'object',
|
|
425
|
-
properties: {
|
|
426
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
427
|
-
speed: { type: 'number', description: 'New speed multiplier' },
|
|
428
|
-
},
|
|
429
|
-
required: ['pid', 'speed'],
|
|
430
|
-
},
|
|
431
|
-
},
|
|
432
|
-
{
|
|
433
|
-
name: 'memory_write_undo',
|
|
434
|
-
description: 'Undo the last memory write operation, restoring the previous value.',
|
|
435
|
-
inputSchema: { type: 'object', properties: {} },
|
|
436
|
-
},
|
|
437
|
-
{
|
|
438
|
-
name: 'memory_write_redo',
|
|
439
|
-
description: 'Redo the last undone memory write operation.',
|
|
440
|
-
inputSchema: { type: 'object', properties: {} },
|
|
441
|
-
},
|
|
442
|
-
{
|
|
443
|
-
name: 'memory_heap_enumerate',
|
|
444
|
-
description: 'Enumerate all heaps and heap blocks in a process via Toolhelp32 snapshot. ' +
|
|
445
|
-
'Returns heap list with block counts, sizes, and overall statistics.',
|
|
446
|
-
inputSchema: {
|
|
447
|
-
type: 'object',
|
|
448
|
-
properties: {
|
|
449
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
450
|
-
maxBlocks: { type: 'number', description: 'Maximum blocks to enumerate per heap (default: 10000)' },
|
|
451
|
-
},
|
|
452
|
-
required: ['pid'],
|
|
453
|
-
},
|
|
454
|
-
},
|
|
455
|
-
{
|
|
456
|
-
name: 'memory_heap_stats',
|
|
457
|
-
description: 'Get detailed heap statistics with size distribution buckets (0-64B, 64B-1KB, 1-64KB, 64KB-1MB, >1MB), ' +
|
|
458
|
-
'fragmentation ratio, and aggregate metrics.',
|
|
459
|
-
inputSchema: {
|
|
460
|
-
type: 'object',
|
|
461
|
-
properties: {
|
|
462
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
463
|
-
},
|
|
464
|
-
required: ['pid'],
|
|
465
|
-
},
|
|
466
|
-
},
|
|
467
|
-
{
|
|
468
|
-
name: 'memory_heap_anomalies',
|
|
469
|
-
description: 'Detect heap anomalies: heap spray patterns (many same-size blocks), possible use-after-free (non-zero free blocks), ' +
|
|
470
|
-
'and suspicious block sizes (0 or >100MB).',
|
|
471
|
-
inputSchema: {
|
|
472
|
-
type: 'object',
|
|
473
|
-
properties: {
|
|
474
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
475
|
-
},
|
|
476
|
-
required: ['pid'],
|
|
477
|
-
},
|
|
478
|
-
},
|
|
479
|
-
{
|
|
480
|
-
name: 'memory_pe_headers',
|
|
481
|
-
description: 'Parse PE headers (DOS, NT, File, Optional) from a module base address in process memory. ' +
|
|
482
|
-
'Returns machine type, entry point, image base, section count, and data directory info.',
|
|
483
|
-
inputSchema: {
|
|
484
|
-
type: 'object',
|
|
485
|
-
properties: {
|
|
486
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
487
|
-
moduleBase: { type: 'string', description: 'Module base address (hex, e.g. "0x7ff612340000")' },
|
|
488
|
-
},
|
|
489
|
-
required: ['pid', 'moduleBase'],
|
|
490
|
-
},
|
|
491
|
-
},
|
|
492
|
-
{
|
|
493
|
-
name: 'memory_pe_imports_exports',
|
|
494
|
-
description: 'Parse import and/or export tables from a PE module in process memory. ' +
|
|
495
|
-
'Returns DLL names, function names, ordinals, hints, and forwarded exports.',
|
|
496
|
-
inputSchema: {
|
|
497
|
-
type: 'object',
|
|
498
|
-
properties: {
|
|
499
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
500
|
-
moduleBase: { type: 'string', description: 'Module base address (hex)' },
|
|
501
|
-
table: {
|
|
502
|
-
type: 'string',
|
|
503
|
-
enum: ['imports', 'exports', 'both'],
|
|
504
|
-
description: 'Which table to parse (default: both)',
|
|
505
|
-
},
|
|
506
|
-
},
|
|
507
|
-
required: ['pid', 'moduleBase'],
|
|
508
|
-
},
|
|
509
|
-
},
|
|
510
|
-
{
|
|
511
|
-
name: 'memory_inline_hook_detect',
|
|
512
|
-
description: 'Detect inline hooks by comparing the first 16 bytes of each exported function on disk vs in memory. ' +
|
|
513
|
-
'Identifies JMP rel32, JMP abs64, PUSH+RET hooks and decodes jump targets.',
|
|
514
|
-
inputSchema: {
|
|
515
|
-
type: 'object',
|
|
516
|
-
properties: {
|
|
517
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
518
|
-
moduleName: { type: 'string', description: 'Module name filter (optional — scans all modules if omitted)' },
|
|
519
|
-
},
|
|
520
|
-
required: ['pid'],
|
|
521
|
-
},
|
|
522
|
-
},
|
|
523
|
-
{
|
|
524
|
-
name: 'memory_anticheat_detect',
|
|
525
|
-
description: 'Scan process imports for anti-debug/anti-cheat mechanisms: IsDebuggerPresent, NtQueryInformationProcess, ' +
|
|
526
|
-
'timing checks (QPC, GetTickCount), thread hiding, heap flag checks, and DR register inspection. ' +
|
|
527
|
-
'Each detection includes a bypass suggestion.',
|
|
528
|
-
inputSchema: {
|
|
529
|
-
type: 'object',
|
|
530
|
-
properties: {
|
|
531
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
532
|
-
},
|
|
533
|
-
required: ['pid'],
|
|
534
|
-
},
|
|
535
|
-
},
|
|
536
|
-
{
|
|
537
|
-
name: 'memory_guard_pages',
|
|
538
|
-
description: 'Find all memory regions with PAGE_GUARD protection in a process. ' +
|
|
539
|
-
'Guard pages are often used as anti-tampering mechanisms or stack overflow detection.',
|
|
540
|
-
inputSchema: {
|
|
541
|
-
type: 'object',
|
|
542
|
-
properties: {
|
|
543
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
544
|
-
},
|
|
545
|
-
required: ['pid'],
|
|
546
|
-
},
|
|
547
|
-
},
|
|
548
|
-
{
|
|
549
|
-
name: 'memory_integrity_check',
|
|
550
|
-
description: 'Check code section integrity by comparing SHA-256 hashes of disk bytes vs memory bytes. ' +
|
|
551
|
-
'Detects patches, hooks, and other runtime modifications to executable sections.',
|
|
552
|
-
inputSchema: {
|
|
553
|
-
type: 'object',
|
|
554
|
-
properties: {
|
|
555
|
-
pid: { type: 'number', description: 'Target process ID' },
|
|
556
|
-
moduleName: { type: 'string', description: 'Module name filter (optional — checks all modules if omitted)' },
|
|
557
|
-
},
|
|
558
|
-
required: ['pid'],
|
|
559
|
-
},
|
|
560
|
-
},
|
|
30
|
+
tool('memory_first_scan')
|
|
31
|
+
.desc('Start a new memory scan session. Scans entire process memory for a value and returns matching addresses. Supports all numeric types (byte/int8/int16/uint16/int32/uint32/int64/uint64/float/double/pointer) plus hex/string patterns. Creates a session for iterative narrowing with memory_next_scan.')
|
|
32
|
+
.number('pid', 'Target process ID')
|
|
33
|
+
.string('value', 'Value to search for (as string, e.g. "100", "3.14", "48 65 6C 6C 6F")')
|
|
34
|
+
.enum('valueType', [...ScanValueTypeOptions], 'Data type of the value')
|
|
35
|
+
.number('alignment', 'Alignment in bytes (0=unaligned, 4=4-byte aligned). Default: natural alignment for the type.')
|
|
36
|
+
.number('maxResults', 'Maximum results to return (default: 1,000,000)')
|
|
37
|
+
.prop('regionFilter', {
|
|
38
|
+
type: 'object',
|
|
39
|
+
properties: {
|
|
40
|
+
writable: { type: 'boolean', description: 'Only scan writable regions' },
|
|
41
|
+
executable: { type: 'boolean', description: 'Only scan executable regions' },
|
|
42
|
+
moduleOnly: { type: 'boolean', description: 'Only scan module-backed regions' },
|
|
43
|
+
},
|
|
44
|
+
description: 'Filter which memory regions to scan',
|
|
45
|
+
})
|
|
46
|
+
.required('pid', 'value', 'valueType')
|
|
47
|
+
.openWorld()
|
|
48
|
+
.build(),
|
|
49
|
+
tool('memory_next_scan')
|
|
50
|
+
.desc('Narrow an existing scan session. Re-reads previously matched addresses and filters using a comparison mode. Use after memory_first_scan or memory_unknown_scan to iteratively narrow results (like Cheat Engine\'s "Next Scan").')
|
|
51
|
+
.string('sessionId', 'Scan session ID from a previous scan')
|
|
52
|
+
.enum('mode', [...ScanCompareModeOptions], 'Comparison mode')
|
|
53
|
+
.string('value', 'Target value for exact/greater_than/less_than/between/not_equal modes')
|
|
54
|
+
.string('value2', 'Upper bound value for "between" mode')
|
|
55
|
+
.required('sessionId', 'mode')
|
|
56
|
+
.openWorld()
|
|
57
|
+
.build(),
|
|
58
|
+
tool('memory_unknown_scan')
|
|
59
|
+
.desc('Start an unknown initial value scan. Captures all readable memory addresses of the given type, then use memory_next_scan with "changed"/"unchanged"/"increased"/"decreased" to narrow down. This is the CE equivalent of "Unknown initial value" scan.')
|
|
60
|
+
.number('pid', 'Target process ID')
|
|
61
|
+
.enum('valueType', [...ScanValueTypeOptions], 'Data type to capture')
|
|
62
|
+
.number('alignment', 'Alignment in bytes (default: natural for type)')
|
|
63
|
+
.number('maxResults', 'Maximum addresses to capture (default: 5,000,000)')
|
|
64
|
+
.prop('regionFilter', {
|
|
65
|
+
type: 'object',
|
|
66
|
+
properties: {
|
|
67
|
+
writable: { type: 'boolean' },
|
|
68
|
+
executable: { type: 'boolean' },
|
|
69
|
+
moduleOnly: { type: 'boolean' },
|
|
70
|
+
},
|
|
71
|
+
})
|
|
72
|
+
.required('pid', 'valueType')
|
|
73
|
+
.openWorld()
|
|
74
|
+
.build(),
|
|
75
|
+
tool('memory_pointer_scan')
|
|
76
|
+
.desc('Find pointers to a target address. Scans process memory for pointer-sized values that point to or near the target address (within ±4096 bytes for struct member access).')
|
|
77
|
+
.number('pid', 'Target process ID')
|
|
78
|
+
.string('targetAddress', 'Target address to find pointers to (hex, e.g. "0x7FF612340000")')
|
|
79
|
+
.number('maxResults', 'Maximum results (default: 10,000)')
|
|
80
|
+
.boolean('moduleOnly', 'Only scan module-backed regions')
|
|
81
|
+
.required('pid', 'targetAddress')
|
|
82
|
+
.readOnly()
|
|
83
|
+
.idempotent()
|
|
84
|
+
.openWorld()
|
|
85
|
+
.build(),
|
|
86
|
+
tool('memory_group_scan')
|
|
87
|
+
.desc('Search for multiple values at known offsets simultaneously. Useful for finding structures where you know the relative layout (e.g. health at +0, mana at +4, level at +8).')
|
|
88
|
+
.number('pid', 'Target process ID')
|
|
89
|
+
.array('pattern', {
|
|
90
|
+
type: 'object',
|
|
91
|
+
properties: {
|
|
92
|
+
offset: { type: 'number', description: 'Byte offset from base' },
|
|
93
|
+
value: { type: 'string', description: 'Expected value at offset' },
|
|
94
|
+
type: {
|
|
95
|
+
type: 'string',
|
|
96
|
+
enum: [...ScanValueTypeOptions],
|
|
97
|
+
description: 'Value type at offset',
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
required: ['offset', 'value', 'type'],
|
|
101
|
+
}, 'Array of {offset, value, type} patterns')
|
|
102
|
+
.number('alignment', 'Alignment for base address (default: 4)')
|
|
103
|
+
.number('maxResults', 'Maximum results (default: 1,000,000)')
|
|
104
|
+
.required('pid', 'pattern')
|
|
105
|
+
.readOnly()
|
|
106
|
+
.idempotent()
|
|
107
|
+
.build(),
|
|
108
|
+
tool('memory_scan_list')
|
|
109
|
+
.desc('List all active scan sessions, showing PID, value type, match count, scan count, and age.')
|
|
110
|
+
.readOnly()
|
|
111
|
+
.idempotent()
|
|
112
|
+
.build(),
|
|
113
|
+
tool('memory_scan_delete')
|
|
114
|
+
.desc('Delete a scan session and free its resources.')
|
|
115
|
+
.string('sessionId', 'Scan session ID to delete')
|
|
116
|
+
.required('sessionId')
|
|
117
|
+
.destructive()
|
|
118
|
+
.idempotent()
|
|
119
|
+
.build(),
|
|
120
|
+
tool('memory_scan_export')
|
|
121
|
+
.desc('Export a scan session as JSON for persistence. Can be imported later to resume the scan workflow.')
|
|
122
|
+
.string('sessionId', 'Scan session ID to export')
|
|
123
|
+
.required('sessionId')
|
|
124
|
+
.readOnly()
|
|
125
|
+
.idempotent()
|
|
126
|
+
.build(),
|
|
127
|
+
tool('memory_pointer_chain_scan')
|
|
128
|
+
.desc('Multi-level pointer chain scan. Finds stable pointer paths from module-relative bases to a target address. Uses BFS to discover chains like [game.exe+0x1A3C] → [+0x10] → [+0x08] → target. Static chains (module-relative base) survive process restarts.')
|
|
129
|
+
.number('pid', 'Target process ID')
|
|
130
|
+
.string('targetAddress', 'Target address to find pointer chains to (hex)')
|
|
131
|
+
.number('maxDepth', 'Maximum chain depth 1-6 (default: 4)')
|
|
132
|
+
.number('maxOffset', 'Maximum offset at each level in bytes (default: 4096)')
|
|
133
|
+
.boolean('staticOnly', 'Only return chains with module-relative base (default: false)')
|
|
134
|
+
.array('modules', { type: 'string' }, 'Only scan specific modules by name')
|
|
135
|
+
.number('maxResults', 'Maximum chains to return (default: 1000)')
|
|
136
|
+
.required('pid', 'targetAddress')
|
|
137
|
+
.readOnly()
|
|
138
|
+
.idempotent()
|
|
139
|
+
.build(),
|
|
140
|
+
tool('memory_pointer_chain_validate')
|
|
141
|
+
.desc('Validate pointer chains by re-dereferencing each link. Returns which chains are still valid and at which level broken chains fail.')
|
|
142
|
+
.number('pid', 'Target process ID')
|
|
143
|
+
.string('chains', 'JSON string of PointerChain[] to validate')
|
|
144
|
+
.required('pid', 'chains')
|
|
145
|
+
.readOnly()
|
|
146
|
+
.idempotent()
|
|
147
|
+
.build(),
|
|
148
|
+
tool('memory_pointer_chain_resolve')
|
|
149
|
+
.desc('Resolve a pointer chain to its current target address by dereferencing each link.')
|
|
150
|
+
.number('pid', 'Target process ID')
|
|
151
|
+
.string('chain', 'JSON string of a single PointerChain to resolve')
|
|
152
|
+
.required('pid', 'chain')
|
|
153
|
+
.readOnly()
|
|
154
|
+
.idempotent()
|
|
155
|
+
.build(),
|
|
156
|
+
tool('memory_pointer_chain_export')
|
|
157
|
+
.desc('Export pointer chains as JSON for persistence. Can be imported across sessions.')
|
|
158
|
+
.string('chains', 'JSON string of PointerChain[] to export')
|
|
159
|
+
.required('chains')
|
|
160
|
+
.readOnly()
|
|
161
|
+
.idempotent()
|
|
162
|
+
.build(),
|
|
163
|
+
tool('memory_structure_analyze')
|
|
164
|
+
.desc('Analyze memory at an address to infer data structure layout. Uses heuristics to classify fields as vtable pointers, regular pointers, string pointers, floats, ints, booleans, or padding. Optionally parses RTTI for class name and inheritance chain (MSVC x64).')
|
|
165
|
+
.number('pid', 'Target process ID')
|
|
166
|
+
.string('address', 'Base address of the structure (hex)')
|
|
167
|
+
.number('size', 'Size to analyze in bytes (default: 256)')
|
|
168
|
+
.array('otherInstances', { type: 'string' }, 'Additional instance addresses for cross-comparison')
|
|
169
|
+
.boolean('parseRtti', 'Whether to attempt RTTI parsing (default: true)')
|
|
170
|
+
.required('pid', 'address')
|
|
171
|
+
.readOnly()
|
|
172
|
+
.idempotent()
|
|
173
|
+
.build(),
|
|
174
|
+
tool('memory_vtable_parse')
|
|
175
|
+
.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.')
|
|
176
|
+
.number('pid', 'Target process ID')
|
|
177
|
+
.string('vtableAddress', 'Address of the vtable (hex)')
|
|
178
|
+
.required('pid', 'vtableAddress')
|
|
179
|
+
.readOnly()
|
|
180
|
+
.idempotent()
|
|
181
|
+
.build(),
|
|
182
|
+
tool('memory_structure_export_c')
|
|
183
|
+
.desc('Export an inferred structure as a C-style struct definition with offset comments and type annotations.')
|
|
184
|
+
.string('structure', 'JSON string of InferredStruct to export')
|
|
185
|
+
.string('name', 'Struct name (defaults to RTTI class name or "UnknownStruct")')
|
|
186
|
+
.required('structure')
|
|
187
|
+
.readOnly()
|
|
188
|
+
.idempotent()
|
|
189
|
+
.build(),
|
|
190
|
+
tool('memory_structure_compare')
|
|
191
|
+
.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.')
|
|
192
|
+
.number('pid', 'Target process ID')
|
|
193
|
+
.string('address1', 'First instance address (hex)')
|
|
194
|
+
.string('address2', 'Second instance address (hex)')
|
|
195
|
+
.number('size', 'Size to compare in bytes (default: 256)')
|
|
196
|
+
.required('pid', 'address1', 'address2')
|
|
197
|
+
.readOnly()
|
|
198
|
+
.idempotent()
|
|
199
|
+
.build(),
|
|
200
|
+
tool('memory_breakpoint_set')
|
|
201
|
+
.desc('Set a hardware breakpoint using x64 debug registers (DR0-DR3). Max 4 concurrent breakpoints. Supports read/write/readwrite/execute access monitoring.')
|
|
202
|
+
.number('pid', 'Target process ID')
|
|
203
|
+
.string('address', 'Address to watch (hex)')
|
|
204
|
+
.enum('access', ['read', 'write', 'readwrite', 'execute'], 'Access type to trigger on')
|
|
205
|
+
.number('size', 'Watch size in bytes (default: 4)')
|
|
206
|
+
.required('pid', 'address', 'access')
|
|
207
|
+
.destructive()
|
|
208
|
+
.build(),
|
|
209
|
+
tool('memory_breakpoint_remove')
|
|
210
|
+
.desc('Remove a hardware breakpoint by ID and free its debug register.')
|
|
211
|
+
.string('breakpointId', 'Breakpoint ID to remove')
|
|
212
|
+
.required('breakpointId')
|
|
213
|
+
.destructive()
|
|
214
|
+
.idempotent()
|
|
215
|
+
.build(),
|
|
216
|
+
tool('memory_breakpoint_list')
|
|
217
|
+
.desc('List all active hardware breakpoints with hit counts.')
|
|
218
|
+
.readOnly()
|
|
219
|
+
.idempotent()
|
|
220
|
+
.build(),
|
|
221
|
+
tool('memory_breakpoint_trace')
|
|
222
|
+
.desc('Trace access to an address: set a temporary breakpoint, collect N hits, then remove. Answers "who reads/writes this address?" by returning instruction addresses and register state for each access.')
|
|
223
|
+
.number('pid', 'Target process ID')
|
|
224
|
+
.string('address', 'Address to trace (hex)')
|
|
225
|
+
.enum('access', ['read', 'write', 'readwrite', 'execute'], 'Access type to trace')
|
|
226
|
+
.number('maxHits', 'Maximum hits to collect (default: 50)')
|
|
227
|
+
.number('timeoutMs', 'Timeout in milliseconds (default: 10000)')
|
|
228
|
+
.required('pid', 'address', 'access')
|
|
229
|
+
.idempotent()
|
|
230
|
+
.build(),
|
|
231
|
+
tool('memory_patch_bytes')
|
|
232
|
+
.desc('Write bytes to target process at address. Saves original bytes for undo. Use for runtime code patching.')
|
|
233
|
+
.number('pid', 'Target process ID')
|
|
234
|
+
.string('address', 'Address to patch (hex)')
|
|
235
|
+
.array('bytes', { type: 'number' }, 'Byte values to write (e.g. [0x90, 0x90])')
|
|
236
|
+
.required('pid', 'address', 'bytes')
|
|
237
|
+
.destructive()
|
|
238
|
+
.openWorld()
|
|
239
|
+
.build(),
|
|
240
|
+
tool('memory_patch_nop')
|
|
241
|
+
.desc('NOP out instructions at address (replace with 0x90). Useful for disabling checks or jumps.')
|
|
242
|
+
.number('pid', 'Target process ID')
|
|
243
|
+
.string('address', 'Address to NOP (hex)')
|
|
244
|
+
.number('count', 'Number of bytes to NOP')
|
|
245
|
+
.required('pid', 'address', 'count')
|
|
246
|
+
.destructive()
|
|
247
|
+
.build(),
|
|
248
|
+
tool('memory_patch_undo')
|
|
249
|
+
.desc('Undo a previous patch by restoring the original bytes.')
|
|
250
|
+
.string('patchId', 'Patch ID to undo')
|
|
251
|
+
.required('patchId')
|
|
252
|
+
.destructive()
|
|
253
|
+
.build(),
|
|
254
|
+
tool('memory_code_caves')
|
|
255
|
+
.desc('Find code caves (runs of 0x00 or 0xCC) in executable sections of loaded modules. Returns largest caves first.')
|
|
256
|
+
.number('pid', 'Target process ID')
|
|
257
|
+
.number('minSize', 'Minimum cave size in bytes (default: 16)')
|
|
258
|
+
.required('pid')
|
|
259
|
+
.readOnly()
|
|
260
|
+
.idempotent()
|
|
261
|
+
.build(),
|
|
262
|
+
tool('memory_write_value')
|
|
263
|
+
.desc('Write a typed value to a memory address. Supports undo via memory_write_undo.')
|
|
264
|
+
.number('pid', 'Target process ID')
|
|
265
|
+
.string('address', 'Address to write to (hex)')
|
|
266
|
+
.string('value', 'Value to write (as string)')
|
|
267
|
+
.enum('valueType', [...ScanValueTypeOptions], 'Data type of the value')
|
|
268
|
+
.required('pid', 'address', 'value', 'valueType')
|
|
269
|
+
.destructive()
|
|
270
|
+
.build(),
|
|
271
|
+
tool('memory_freeze')
|
|
272
|
+
.desc('Freeze an address to a value. Continuously writes the value at an interval to prevent changes.')
|
|
273
|
+
.number('pid', 'Target process ID')
|
|
274
|
+
.string('address', 'Address to freeze (hex)')
|
|
275
|
+
.string('value', 'Value to maintain')
|
|
276
|
+
.enum('valueType', [...ScanValueTypeOptions], 'Data type')
|
|
277
|
+
.number('intervalMs', 'Write interval in ms (default: 100)')
|
|
278
|
+
.required('pid', 'address', 'value', 'valueType')
|
|
279
|
+
.destructive()
|
|
280
|
+
.build(),
|
|
281
|
+
tool('memory_unfreeze')
|
|
282
|
+
.desc('Stop freezing a previously frozen address.')
|
|
283
|
+
.string('freezeId', 'Freeze ID to remove')
|
|
284
|
+
.required('freezeId')
|
|
285
|
+
.destructive()
|
|
286
|
+
.idempotent()
|
|
287
|
+
.build(),
|
|
288
|
+
tool('memory_dump')
|
|
289
|
+
.desc('Dump memory region as hex with ASCII column. Outputs a formatted hex dump similar to xxd.')
|
|
290
|
+
.number('pid', 'Target process ID')
|
|
291
|
+
.string('address', 'Start address (hex)')
|
|
292
|
+
.number('size', 'Size to dump in bytes (default: 256)')
|
|
293
|
+
.required('pid', 'address')
|
|
294
|
+
.readOnly()
|
|
295
|
+
.idempotent()
|
|
296
|
+
.build(),
|
|
297
|
+
tool('memory_speedhack_apply')
|
|
298
|
+
.desc('Apply speedhack to a process. Hooks time APIs (GetTickCount64, QueryPerformanceCounter) to scale time. Speed 2.0 = 2x faster, 0.5 = half speed.')
|
|
299
|
+
.number('pid', 'Target process ID')
|
|
300
|
+
.number('speed', 'Speed multiplier (e.g. 2.0 for 2x speed)')
|
|
301
|
+
.required('pid', 'speed')
|
|
302
|
+
.destructive()
|
|
303
|
+
.build(),
|
|
304
|
+
tool('memory_speedhack_set')
|
|
305
|
+
.desc('Adjust the speed multiplier of an active speedhack without re-hooking.')
|
|
306
|
+
.number('pid', 'Target process ID')
|
|
307
|
+
.number('speed', 'New speed multiplier')
|
|
308
|
+
.required('pid', 'speed')
|
|
309
|
+
.destructive()
|
|
310
|
+
.idempotent()
|
|
311
|
+
.build(),
|
|
312
|
+
tool('memory_write_undo')
|
|
313
|
+
.desc('Undo the last memory write operation, restoring the previous value.')
|
|
314
|
+
.destructive()
|
|
315
|
+
.openWorld()
|
|
316
|
+
.build(),
|
|
317
|
+
tool('memory_write_redo')
|
|
318
|
+
.desc('Redo the last undone memory write operation.')
|
|
319
|
+
.destructive()
|
|
320
|
+
.build(),
|
|
321
|
+
tool('memory_heap_enumerate')
|
|
322
|
+
.desc('Enumerate all heaps and heap blocks in a process via Toolhelp32 snapshot. Returns heap list with block counts, sizes, and overall statistics.')
|
|
323
|
+
.number('pid', 'Target process ID')
|
|
324
|
+
.number('maxBlocks', 'Maximum blocks to enumerate per heap (default: 10000)')
|
|
325
|
+
.required('pid')
|
|
326
|
+
.readOnly()
|
|
327
|
+
.idempotent()
|
|
328
|
+
.build(),
|
|
329
|
+
tool('memory_heap_stats')
|
|
330
|
+
.desc('Get detailed heap statistics with size distribution buckets (0-64B, 64B-1KB, 1-64KB, 64KB-1MB, >1MB), fragmentation ratio, and aggregate metrics.')
|
|
331
|
+
.number('pid', 'Target process ID')
|
|
332
|
+
.required('pid')
|
|
333
|
+
.readOnly()
|
|
334
|
+
.idempotent()
|
|
335
|
+
.build(),
|
|
336
|
+
tool('memory_heap_anomalies')
|
|
337
|
+
.desc('Detect heap anomalies: heap spray patterns (many same-size blocks), possible use-after-free (non-zero free blocks), and suspicious block sizes (0 or >100MB).')
|
|
338
|
+
.number('pid', 'Target process ID')
|
|
339
|
+
.required('pid')
|
|
340
|
+
.readOnly()
|
|
341
|
+
.idempotent()
|
|
342
|
+
.build(),
|
|
343
|
+
tool('memory_pe_headers')
|
|
344
|
+
.desc('Parse PE headers (DOS, NT, File, Optional) from a module base address in process memory. Returns machine type, entry point, image base, section count, and data directory info.')
|
|
345
|
+
.number('pid', 'Target process ID')
|
|
346
|
+
.string('moduleBase', 'Module base address (hex, e.g. "0x7ff612340000")')
|
|
347
|
+
.required('pid', 'moduleBase')
|
|
348
|
+
.readOnly()
|
|
349
|
+
.idempotent()
|
|
350
|
+
.build(),
|
|
351
|
+
tool('memory_pe_imports_exports')
|
|
352
|
+
.desc('Parse import and/or export tables from a PE module in process memory. Returns DLL names, function names, ordinals, hints, and forwarded exports.')
|
|
353
|
+
.number('pid', 'Target process ID')
|
|
354
|
+
.string('moduleBase', 'Module base address (hex)')
|
|
355
|
+
.enum('table', ['imports', 'exports', 'both'], 'Which table to parse', { default: 'both' })
|
|
356
|
+
.required('pid', 'moduleBase')
|
|
357
|
+
.readOnly()
|
|
358
|
+
.idempotent()
|
|
359
|
+
.build(),
|
|
360
|
+
tool('memory_inline_hook_detect')
|
|
361
|
+
.desc('Detect inline hooks by comparing the first 16 bytes of each exported function on disk vs in memory. Identifies JMP rel32, JMP abs64, PUSH+RET hooks and decodes jump targets.')
|
|
362
|
+
.number('pid', 'Target process ID')
|
|
363
|
+
.string('moduleName', 'Module name filter (optional — scans all modules if omitted)')
|
|
364
|
+
.required('pid')
|
|
365
|
+
.readOnly()
|
|
366
|
+
.idempotent()
|
|
367
|
+
.build(),
|
|
368
|
+
tool('memory_anticheat_detect')
|
|
369
|
+
.desc('Scan process imports for anti-debug/anti-cheat mechanisms: IsDebuggerPresent, NtQueryInformationProcess, timing checks (QPC, GetTickCount), thread hiding, heap flag checks, and DR register inspection. Each detection includes a bypass suggestion.')
|
|
370
|
+
.number('pid', 'Target process ID')
|
|
371
|
+
.required('pid')
|
|
372
|
+
.readOnly()
|
|
373
|
+
.idempotent()
|
|
374
|
+
.build(),
|
|
375
|
+
tool('memory_guard_pages')
|
|
376
|
+
.desc('Find all memory regions with PAGE_GUARD protection in a process. Guard pages are often used as anti-tampering mechanisms or stack overflow detection.')
|
|
377
|
+
.number('pid', 'Target process ID')
|
|
378
|
+
.required('pid')
|
|
379
|
+
.readOnly()
|
|
380
|
+
.idempotent()
|
|
381
|
+
.build(),
|
|
382
|
+
tool('memory_integrity_check')
|
|
383
|
+
.desc('Check executable memory regions against their corresponding on-disk PE files (.text sections) to detect modifications like inline hooks or code patches.')
|
|
384
|
+
.number('pid', 'Target process ID')
|
|
385
|
+
.required('pid')
|
|
386
|
+
.readOnly()
|
|
387
|
+
.idempotent()
|
|
388
|
+
.build(),
|
|
561
389
|
];
|