@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.
Files changed (583) hide show
  1. package/README.md +14 -5
  2. package/README.zh.md +18 -3
  3. package/dist/packages/extension-sdk/src/bridges/shared.js +2 -2
  4. package/dist/packages/extension-sdk/src/plugin.d.ts +5 -0
  5. package/dist/packages/extension-sdk/src/plugin.js +119 -33
  6. package/dist/packages/extension-sdk/src/workflow.d.ts +171 -0
  7. package/dist/packages/extension-sdk/src/workflow.js +272 -0
  8. package/dist/src/config/search-defaults.js +161 -0
  9. package/dist/src/constants.d.ts +3 -0
  10. package/dist/src/constants.js +4 -1
  11. package/dist/src/index.d.ts +1 -1
  12. package/dist/src/index.js +13 -17
  13. package/dist/src/modules/analyzer/CodeAnalyzer.d.ts +1 -3
  14. package/dist/src/modules/analyzer/CodeAnalyzer.js +16 -28
  15. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.d.ts +1 -2
  16. package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +1 -45
  17. package/dist/src/modules/analyzer/IntelligentAnalyzer.d.ts +1 -37
  18. package/dist/src/modules/analyzer/IntelligentAnalyzer.js +9 -142
  19. package/dist/src/modules/analyzer/PatternDetector.js +3 -3
  20. package/dist/src/modules/analyzer/PatternDetectorAuthPatterns.js +1 -1
  21. package/dist/src/modules/browser/BrowserDiscovery.js +2 -2
  22. package/dist/src/modules/browser/BrowserModeManager.js +11 -10
  23. package/dist/src/modules/browser/BrowserPool.d.ts +49 -0
  24. package/dist/src/modules/browser/BrowserPool.js +288 -0
  25. package/dist/src/modules/browser/TabRegistry.js +2 -2
  26. package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +1 -0
  27. package/dist/src/modules/browser/UnifiedBrowserManager.js +18 -3
  28. package/dist/src/modules/captcha/AICaptchaDetector.d.ts +1 -10
  29. package/dist/src/modules/captcha/AICaptchaDetector.js +7 -201
  30. package/dist/src/modules/collector/CodeCollector.js +4 -5
  31. package/dist/src/modules/collector/DOMInspector.js +48 -58
  32. package/dist/src/modules/collector/PageController.d.ts +17 -4
  33. package/dist/src/modules/collector/PageController.js +2 -5
  34. package/dist/src/modules/collector/PageScriptCollectors.js +3 -3
  35. package/dist/src/modules/crypto/CryptoDetector.d.ts +1 -4
  36. package/dist/src/modules/crypto/CryptoDetector.js +2 -42
  37. package/dist/src/modules/crypto/CryptoRules.js +1 -1
  38. package/dist/src/modules/debugger/BlackboxManager.js +1 -1
  39. package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
  40. package/dist/src/modules/debugger/ScriptManager.impl.extract-function-tree.js +4 -2
  41. package/dist/src/modules/debugger/WatchExpressionManager.js +1 -1
  42. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.d.ts +5 -0
  43. package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.js +43 -2
  44. package/dist/src/modules/deobfuscator/Deobfuscator.d.ts +1 -4
  45. package/dist/src/modules/deobfuscator/Deobfuscator.js +9 -39
  46. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.d.ts +0 -3
  47. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +2 -8
  48. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.d.ts +1 -2
  49. package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +3 -55
  50. package/dist/src/modules/deobfuscator/JScramblerDeobfuscator.js +3 -4
  51. package/dist/src/modules/deobfuscator/VMDeobfuscator.d.ts +2 -10
  52. package/dist/src/modules/deobfuscator/VMDeobfuscator.js +3 -128
  53. package/dist/src/modules/deobfuscator/webcrack.js +15 -2
  54. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.d.ts +5 -8
  55. package/dist/src/modules/emulator/AIEnvironmentAnalyzer.js +10 -102
  56. package/dist/src/modules/emulator/EnvironmentEmulator.d.ts +1 -5
  57. package/dist/src/modules/emulator/EnvironmentEmulator.js +7 -91
  58. package/dist/src/modules/emulator/EnvironmentEmulatorFetch.js +58 -61
  59. package/dist/src/modules/emulator/templates/chrome-env.d.ts +17 -7
  60. package/dist/src/modules/emulator/templates/chrome-env.js +14 -7
  61. package/dist/src/modules/external/ExternalToolRunner.js +25 -22
  62. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.compose.js +5 -5
  63. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.network.js +311 -311
  64. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.runtime.js +410 -410
  65. package/dist/src/modules/hook/HookGeneratorBuilders.core.generators.storage.js +122 -122
  66. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +13 -0
  67. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +42 -0
  68. package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +194 -194
  69. package/dist/src/modules/monitor/FetchInterceptor.d.ts +46 -0
  70. package/dist/src/modules/monitor/FetchInterceptor.js +191 -0
  71. package/dist/src/modules/monitor/PerformanceMonitor.js +8 -7
  72. package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +62 -62
  73. package/dist/src/modules/process/BaseMemoryManager.d.ts +1 -1
  74. package/dist/src/modules/process/LinuxProcessManager.js +2 -0
  75. package/dist/src/modules/process/MacProcessManager.js +25 -25
  76. package/dist/src/modules/process/MemoryManager.d.ts +1 -1
  77. package/dist/src/modules/process/MemoryManager.js +2 -2
  78. package/dist/src/modules/process/memory/AuditTrail.js +1 -1
  79. package/dist/src/modules/process/memory/availability.js +49 -49
  80. package/dist/src/modules/process/memory/injector.js +185 -185
  81. package/dist/src/modules/process/memory/reader.js +85 -53
  82. package/dist/src/modules/process/memory/regions.dump.js +51 -51
  83. package/dist/src/modules/process/memory/regions.enumerate.js +108 -108
  84. package/dist/src/modules/process/memory/regions.modules.js +80 -80
  85. package/dist/src/modules/process/memory/regions.protection.js +148 -115
  86. package/dist/src/modules/process/memory/scanner.d.ts +5 -1
  87. package/dist/src/modules/process/memory/scanner.darwin.js +98 -41
  88. package/dist/src/modules/process/memory/scanner.js +88 -4
  89. package/dist/src/modules/process/memory/scanner.windows.js +124 -124
  90. package/dist/src/modules/process/memory/writer.js +98 -58
  91. package/dist/src/modules/security/ExecutionSandbox.js +51 -52
  92. package/dist/src/modules/stealth/FingerprintManager.js +1 -1
  93. package/dist/src/modules/stealth/StealthScripts.d.ts +1 -0
  94. package/dist/src/modules/stealth/StealthScripts.js +18 -13
  95. package/dist/src/modules/stealth/StealthVerifier.js +1 -3
  96. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +14 -0
  97. package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +181 -2
  98. package/dist/src/modules/trace/TraceDB.js +75 -69
  99. package/dist/src/modules/trace/TraceRecorder.js +1 -5
  100. package/dist/src/native/AntiCheatDetector.js +67 -16
  101. package/dist/src/native/CodeInjector.js +3 -3
  102. package/dist/src/native/HardwareBreakpoint.js +24 -15
  103. package/dist/src/native/HeapAnalyzer.js +2 -2
  104. package/dist/src/native/MemoryController.js +1 -1
  105. package/dist/src/native/MemoryScanSession.js +2 -2
  106. package/dist/src/native/MemoryScanner.js +4 -8
  107. package/dist/src/native/NativeMemoryManager.impl.js +2 -2
  108. package/dist/src/native/PEAnalyzer.js +14 -15
  109. package/dist/src/native/PointerChainEngine.js +2 -4
  110. package/dist/src/native/ScriptLoader.js +4 -9
  111. package/dist/src/native/Speedhack.js +1 -1
  112. package/dist/src/native/StructureAnalyzer.js +52 -33
  113. package/dist/src/native/Win32API.d.ts +1 -0
  114. package/dist/src/native/Win32API.js +13 -0
  115. package/dist/src/native/Win32Debug.js +19 -19
  116. package/dist/src/native/platform/darwin/DarwinAPI.d.ts +2 -0
  117. package/dist/src/native/platform/darwin/DarwinAPI.js +8 -0
  118. package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +6 -1
  119. package/dist/src/server/MCPServer.context.d.ts +3 -1
  120. package/dist/src/server/MCPServer.d.ts +2 -1
  121. package/dist/src/server/MCPServer.domain.d.ts +1 -1
  122. package/dist/src/server/MCPServer.domain.js +81 -16
  123. package/dist/src/server/MCPServer.js +41 -14
  124. package/dist/src/server/MCPServer.resources.d.ts +2 -0
  125. package/dist/src/server/MCPServer.resources.js +91 -0
  126. package/dist/src/server/MCPServer.search.handlers.call.js +2 -1
  127. package/dist/src/server/MCPServer.search.helpers.js +1 -1
  128. package/dist/src/server/MCPServer.transport.js +12 -0
  129. package/dist/src/server/ToolCallContextGuard.js +8 -0
  130. package/dist/src/server/ToolRouter.d.ts +25 -9
  131. package/dist/src/server/ToolRouter.intent.d.ts +26 -0
  132. package/dist/src/server/ToolRouter.intent.js +77 -0
  133. package/dist/src/server/ToolRouter.js +103 -284
  134. package/dist/src/server/ToolRouter.policy.d.ts +22 -0
  135. package/dist/src/server/ToolRouter.policy.js +163 -0
  136. package/dist/src/server/ToolRouter.probe.d.ts +17 -0
  137. package/dist/src/server/ToolRouter.probe.js +103 -0
  138. package/dist/src/server/ToolRouter.renderer.d.ts +9 -0
  139. package/dist/src/server/ToolRouter.renderer.js +52 -0
  140. package/dist/src/server/activation/ActivationController.js +15 -12
  141. package/dist/src/server/activation/CompoundConditionEngine.js +1 -1
  142. package/dist/src/server/activation/PredictiveBooster.js +1 -3
  143. package/dist/src/server/domains/analysis/definitions.js +155 -655
  144. package/dist/src/server/domains/analysis/handlers.impl.js +26 -20
  145. package/dist/src/server/domains/analysis/handlers.web-tools.js +2 -1
  146. package/dist/src/server/domains/analysis/manifest.js +6 -4
  147. package/dist/src/server/domains/antidebug/definitions.js +25 -111
  148. package/dist/src/server/domains/browser/definitions.tools.advanced.js +59 -88
  149. package/dist/src/server/domains/browser/definitions.tools.behavior.js +120 -227
  150. package/dist/src/server/domains/browser/definitions.tools.page-core.js +210 -439
  151. package/dist/src/server/domains/browser/definitions.tools.page-system.js +108 -250
  152. package/dist/src/server/domains/browser/definitions.tools.runtime.js +98 -211
  153. package/dist/src/server/domains/browser/definitions.tools.security.js +194 -339
  154. package/dist/src/server/domains/browser/handlers/camoufox-browser.js +3 -2
  155. package/dist/src/server/domains/browser/handlers/captcha-solver.js +3 -3
  156. package/dist/src/server/domains/browser/handlers/dom-query.js +2 -1
  157. package/dist/src/server/domains/browser/handlers/framework-state.js +27 -9
  158. package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +21 -20
  159. package/dist/src/server/domains/browser/handlers/script-management.js +1 -1
  160. package/dist/src/server/domains/browser/handlers/stealth-injection.d.ts +1 -0
  161. package/dist/src/server/domains/browser/handlers/stealth-injection.js +3 -0
  162. package/dist/src/server/domains/browser/handlers.impl.d.ts +1 -2
  163. package/dist/src/server/domains/browser/handlers.impl.js +2 -3
  164. package/dist/src/server/domains/browser/manifest.js +37 -13
  165. package/dist/src/server/domains/coordination/definitions.js +50 -216
  166. package/dist/src/server/domains/coordination/index.d.ts +2 -1
  167. package/dist/src/server/domains/coordination/index.js +1 -0
  168. package/dist/src/server/domains/debugger/definitions.tools.advanced.js +72 -189
  169. package/dist/src/server/domains/debugger/definitions.tools.core.js +114 -288
  170. package/dist/src/server/domains/debugger/manifest.js +9 -2
  171. package/dist/src/server/domains/encoding/definitions.js +43 -153
  172. package/dist/src/server/domains/encoding/handlers.base.js +2 -2
  173. package/dist/src/server/domains/evidence/definitions.d.ts +2 -0
  174. package/dist/src/server/domains/evidence/definitions.js +42 -0
  175. package/dist/src/server/domains/evidence/handlers.d.ts +582 -0
  176. package/dist/src/server/domains/evidence/handlers.js +60 -0
  177. package/dist/src/server/domains/evidence/index.d.ts +2 -0
  178. package/dist/src/server/domains/evidence/index.js +2 -0
  179. package/dist/src/server/domains/evidence/manifest.d.ts +63 -0
  180. package/dist/src/server/domains/evidence/manifest.js +78 -0
  181. package/dist/src/server/domains/graphql/definitions.js +53 -141
  182. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +92 -114
  183. package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +77 -77
  184. package/dist/src/server/domains/hooks/ai-handlers.d.ts +0 -7
  185. package/dist/src/server/domains/hooks/ai-handlers.js +1 -67
  186. package/dist/src/server/domains/hooks/definitions.js +69 -335
  187. package/dist/src/server/domains/hooks/manifest.d.ts +1 -1
  188. package/dist/src/server/domains/hooks/manifest.js +1 -2
  189. package/dist/src/server/domains/instrumentation/definitions.d.ts +2 -0
  190. package/dist/src/server/domains/instrumentation/definitions.js +99 -0
  191. package/dist/src/server/domains/instrumentation/handlers.d.ts +78 -0
  192. package/dist/src/server/domains/instrumentation/handlers.js +206 -0
  193. package/dist/src/server/domains/instrumentation/index.d.ts +2 -0
  194. package/dist/src/server/domains/instrumentation/index.js +2 -0
  195. package/dist/src/server/domains/instrumentation/manifest.d.ts +63 -0
  196. package/dist/src/server/domains/instrumentation/manifest.js +114 -0
  197. package/dist/src/server/domains/macro/definitions.js +16 -43
  198. package/dist/src/server/domains/maintenance/definitions.js +60 -219
  199. package/dist/src/server/domains/maintenance/handlers.extensions.js +78 -20
  200. package/dist/src/server/domains/memory/definitions.js +387 -559
  201. package/dist/src/server/domains/memory/handlers/hooks.d.ts +55 -0
  202. package/dist/src/server/domains/memory/handlers/hooks.js +115 -0
  203. package/dist/src/server/domains/memory/handlers/integrity.d.ts +77 -0
  204. package/dist/src/server/domains/memory/handlers/integrity.js +180 -0
  205. package/dist/src/server/domains/memory/handlers/pointer-chain.d.ts +29 -0
  206. package/dist/src/server/domains/memory/handlers/pointer-chain.js +82 -0
  207. package/dist/src/server/domains/memory/handlers/readwrite.d.ts +41 -0
  208. package/dist/src/server/domains/memory/handlers/readwrite.js +78 -0
  209. package/dist/src/server/domains/memory/handlers/scan.d.ts +35 -0
  210. package/dist/src/server/domains/memory/handlers/scan.js +97 -0
  211. package/dist/src/server/domains/memory/handlers/session.d.ts +23 -0
  212. package/dist/src/server/domains/memory/handlers/session.js +49 -0
  213. package/dist/src/server/domains/memory/handlers/structure.d.ts +29 -0
  214. package/dist/src/server/domains/memory/handlers/structure.js +74 -0
  215. package/dist/src/server/domains/memory/handlers.impl.d.ts +49 -54
  216. package/dist/src/server/domains/memory/handlers.impl.js +63 -494
  217. package/dist/src/server/domains/memory/manifest.js +236 -64
  218. package/dist/src/server/domains/native-bridge/definitions.js +54 -192
  219. package/dist/src/server/domains/native-bridge/index.d.ts +1 -0
  220. package/dist/src/server/domains/native-bridge/index.js +2 -1
  221. package/dist/src/server/domains/network/auth-extractor.js +1 -1
  222. package/dist/src/server/domains/network/definitions.js +175 -578
  223. package/dist/src/server/domains/network/handlers.base.core.d.ts +64 -0
  224. package/dist/src/server/domains/network/handlers.base.core.js +623 -0
  225. package/dist/src/server/domains/network/handlers.base.d.ts +2 -124
  226. package/dist/src/server/domains/network/handlers.base.js +3 -878
  227. package/dist/src/server/domains/network/handlers.base.performance.d.ts +63 -0
  228. package/dist/src/server/domains/network/handlers.base.performance.js +193 -0
  229. package/dist/src/server/domains/network/handlers.base.types.d.ts +42 -0
  230. package/dist/src/server/domains/network/handlers.base.types.js +89 -0
  231. package/dist/src/server/domains/network/handlers.impl.core.runtime.d.ts +1 -1
  232. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.d.ts +21 -0
  233. package/dist/src/server/domains/network/handlers.impl.core.runtime.intercept.js +186 -0
  234. package/dist/src/server/domains/network/handlers.impl.core.runtime.js +1 -1
  235. package/dist/src/server/domains/network/manifest.js +15 -0
  236. package/dist/src/server/domains/network/replay.js +1 -4
  237. package/dist/src/server/domains/platform/definitions.js +121 -112
  238. package/dist/src/server/domains/platform/handlers/bridge-handlers.d.ts +4 -0
  239. package/dist/src/server/domains/platform/handlers/bridge-handlers.js +193 -4
  240. package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +26 -6
  241. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.d.ts +3 -0
  242. package/dist/src/server/domains/platform/handlers/electron-dual-cdp.js +170 -0
  243. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.d.ts +3 -0
  244. package/dist/src/server/domains/platform/handlers/electron-fuse-handler.js +193 -0
  245. package/dist/src/server/domains/platform/handlers/electron-handlers.d.ts +6 -0
  246. package/dist/src/server/domains/platform/handlers/electron-handlers.js +95 -2
  247. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.d.ts +2 -0
  248. package/dist/src/server/domains/platform/handlers/electron-ipc-sniffer.js +370 -0
  249. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.d.ts +2 -0
  250. package/dist/src/server/domains/platform/handlers/electron-userdata-handler.js +78 -0
  251. package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +3 -3
  252. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.d.ts +2 -0
  253. package/dist/src/server/domains/platform/handlers/v8-bytecode-handler.js +207 -0
  254. package/dist/src/server/domains/platform/handlers.d.ts +48 -0
  255. package/dist/src/server/domains/platform/handlers.js +29 -0
  256. package/dist/src/server/domains/platform/manifest.js +38 -0
  257. package/dist/src/server/domains/process/definitions.js +163 -647
  258. package/dist/src/server/domains/process/handlers.base.d.ts +3 -95
  259. package/dist/src/server/domains/process/handlers.base.js +7 -462
  260. package/dist/src/server/domains/process/handlers.base.process.d.ts +61 -0
  261. package/dist/src/server/domains/process/handlers.base.process.js +417 -0
  262. package/dist/src/server/domains/process/handlers.base.types.d.ts +57 -0
  263. package/dist/src/server/domains/process/handlers.base.types.js +50 -0
  264. package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +18 -16
  265. package/dist/src/server/domains/process/manifest.js +6 -1
  266. package/dist/src/server/domains/sandbox/definitions.js +11 -33
  267. package/dist/src/server/domains/sandbox/handlers.js +8 -3
  268. package/dist/src/server/domains/shared/ResponseBuilder.d.ts +209 -0
  269. package/dist/src/server/domains/shared/ResponseBuilder.js +48 -0
  270. package/dist/src/server/domains/shared/modules.d.ts +0 -2
  271. package/dist/src/server/domains/shared/modules.js +0 -1
  272. package/dist/src/server/domains/shared-state-board/definitions.d.ts +2 -0
  273. package/dist/src/server/domains/shared-state-board/definitions.js +78 -0
  274. package/dist/src/server/domains/shared-state-board/handlers.impl.d.ts +58 -0
  275. package/dist/src/server/domains/shared-state-board/handlers.impl.js +419 -0
  276. package/dist/src/server/domains/shared-state-board/index.d.ts +2 -0
  277. package/dist/src/server/domains/shared-state-board/index.js +2 -0
  278. package/dist/src/server/domains/shared-state-board/manifest.d.ts +57 -0
  279. package/dist/src/server/domains/shared-state-board/manifest.js +74 -0
  280. package/dist/src/server/domains/sourcemap/definitions.js +27 -111
  281. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-common.js +7 -2
  282. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
  283. package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +1 -1
  284. package/dist/src/server/domains/sourcemap/manifest.d.ts +1 -1
  285. package/dist/src/server/domains/sourcemap/manifest.js +1 -1
  286. package/dist/src/server/domains/streaming/definitions.js +36 -148
  287. package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +163 -164
  288. package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +1 -1
  289. package/dist/src/server/domains/trace/TraceSummarizer.js +8 -5
  290. package/dist/src/server/domains/trace/definitions.tools.js +51 -206
  291. package/dist/src/server/domains/trace/handlers.js +10 -12
  292. package/dist/src/server/domains/trace/index.d.ts +2 -1
  293. package/dist/src/server/domains/trace/index.js +2 -1
  294. package/dist/src/server/domains/trace/manifest.js +15 -3
  295. package/dist/src/server/domains/transform/definitions.js +50 -210
  296. package/dist/src/server/domains/transform/handlers.impl.transform-base.js +108 -108
  297. package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +18 -19
  298. package/dist/src/server/domains/transform/manifest.d.ts +1 -1
  299. package/dist/src/server/domains/transform/manifest.js +1 -1
  300. package/dist/src/server/domains/wasm/definitions.js +55 -232
  301. package/dist/src/server/domains/wasm/handlers.js +1 -1
  302. package/dist/src/server/domains/workflow/definitions.js +144 -414
  303. package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +1 -1
  304. package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +51 -51
  305. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.d.ts +2 -0
  306. package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +126 -87
  307. package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +5 -5
  308. package/dist/src/server/evidence/ReverseEvidenceGraph.d.ts +20 -0
  309. package/dist/src/server/evidence/ReverseEvidenceGraph.js +208 -0
  310. package/dist/src/server/evidence/index.d.ts +2 -0
  311. package/dist/src/server/evidence/index.js +1 -0
  312. package/dist/src/server/evidence/types.d.ts +22 -0
  313. package/dist/src/server/evidence/types.js +1 -0
  314. package/dist/src/server/extensions/ExtensionManager.d.ts +1 -0
  315. package/dist/src/server/extensions/ExtensionManager.discovery.js +72 -9
  316. package/dist/src/server/extensions/ExtensionManager.integrity.js +1 -1
  317. package/dist/src/server/extensions/ExtensionManager.js +193 -40
  318. package/dist/src/server/extensions/ExtensionManager.roots.d.ts +1 -1
  319. package/dist/src/server/extensions/ExtensionManager.roots.js +4 -4
  320. package/dist/src/server/extensions/plugin-config.js +1 -1
  321. package/dist/src/server/extensions/plugin-env.d.ts +1 -1
  322. package/dist/src/server/extensions/plugin-env.js +10 -4
  323. package/dist/src/server/extensions/types.d.ts +17 -0
  324. package/dist/src/server/extensions/types.js +1 -1
  325. package/dist/src/server/http/SseStream.d.ts +21 -0
  326. package/dist/src/server/http/SseStream.js +129 -0
  327. package/dist/src/server/instrumentation/EvidenceGraphBridge.d.ts +13 -0
  328. package/dist/src/server/instrumentation/EvidenceGraphBridge.js +150 -0
  329. package/dist/src/server/instrumentation/InstrumentationSession.d.ts +60 -0
  330. package/dist/src/server/instrumentation/InstrumentationSession.js +269 -0
  331. package/dist/src/server/instrumentation/index.d.ts +2 -0
  332. package/dist/src/server/instrumentation/index.js +2 -0
  333. package/dist/src/server/instrumentation/types.d.ts +62 -0
  334. package/dist/src/server/instrumentation/types.js +7 -0
  335. package/dist/src/server/macros/MacroConfigLoader.d.ts +6 -5
  336. package/dist/src/server/macros/MacroConfigLoader.js +61 -59
  337. package/dist/src/server/macros/MacroRunner.js +6 -2
  338. package/dist/src/server/macros/builtins/index.d.ts +2 -3
  339. package/dist/src/server/macros/builtins/index.js +51 -7
  340. package/dist/src/server/plugins/PluginContract.d.ts +1 -1
  341. package/dist/src/server/registry/contracts.d.ts +1 -1
  342. package/dist/src/server/registry/discovery.js +5 -4
  343. package/dist/src/server/registry/ensure-browser-core.js +0 -3
  344. package/dist/src/server/registry/index.js +4 -4
  345. package/dist/src/server/registry/tool-builder.d.ts +46 -0
  346. package/dist/src/server/registry/tool-builder.js +105 -0
  347. package/dist/src/server/sandbox/QuickJSSandbox.js +16 -5
  348. package/dist/src/server/sandbox/SandboxHelpers.js +250 -250
  349. package/dist/src/server/search/EmbeddingWorker.js +5 -3
  350. package/dist/src/server/search/FeedbackTracker.d.ts +9 -0
  351. package/dist/src/server/search/FeedbackTracker.js +26 -0
  352. package/dist/src/server/search/QueryNormalizer.d.ts +6 -0
  353. package/dist/src/server/search/QueryNormalizer.js +94 -0
  354. package/dist/src/server/search/ToolSearchEngineImpl.d.ts +2 -3
  355. package/dist/src/server/search/ToolSearchEngineImpl.js +38 -88
  356. package/dist/src/server/teams/TeamManager.d.ts +43 -0
  357. package/dist/src/server/teams/TeamManager.js +238 -0
  358. package/dist/src/server/teams/index.d.ts +1 -0
  359. package/dist/src/server/teams/index.js +1 -0
  360. package/dist/src/server/workflows/WorkflowContract.d.ts +44 -4
  361. package/dist/src/server/workflows/WorkflowContract.js +52 -0
  362. package/dist/src/server/workflows/WorkflowEngine.d.ts +1 -0
  363. package/dist/src/server/workflows/WorkflowEngine.js +314 -4
  364. package/dist/src/types/config.d.ts +0 -14
  365. package/dist/src/types/deobfuscator.d.ts +1 -1
  366. package/dist/src/types/index.d.ts +1 -1
  367. package/dist/src/utils/DetailedDataManager.js +2 -0
  368. package/dist/src/utils/RingBuffer.js +5 -5
  369. package/dist/src/utils/TokenBudgetManager.js +1 -1
  370. package/dist/src/utils/UnifiedCacheManager.js +1 -1
  371. package/dist/src/utils/artifactRetention.js +2 -2
  372. package/dist/src/utils/betterSqlite3.d.ts +11 -0
  373. package/dist/src/utils/betterSqlite3.js +88 -0
  374. package/dist/src/utils/browserExecutable.js +2 -2
  375. package/dist/src/utils/cache/CachedDecorator.d.ts +8 -0
  376. package/dist/src/utils/cache/CachedDecorator.js +55 -0
  377. package/dist/src/utils/cache/PersistentCache.d.ts +33 -0
  378. package/dist/src/utils/cache/PersistentCache.js +246 -0
  379. package/dist/src/utils/cache/index.d.ts +2 -0
  380. package/dist/src/utils/cache/index.js +2 -0
  381. package/dist/src/utils/cliFastPath.js +5 -8
  382. package/dist/src/utils/config.js +4 -26
  383. package/dist/src/utils/environmentDoctor.js +138 -11
  384. package/dist/src/utils/outputPaths.js +16 -9
  385. package/dist/src/utils/parallel.js +1 -3
  386. package/package.json +82 -81
  387. package/scripts/postinstall.cjs +54 -27
  388. package/workflows/.gitkeep +0 -0
  389. package/workflows/anti-bot-diagnoser/.jshook-install.json +14 -0
  390. package/workflows/anti-bot-diagnoser/LICENSE +21 -0
  391. package/workflows/anti-bot-diagnoser/README.md +105 -0
  392. package/workflows/anti-bot-diagnoser/docs/agent-recipes.md +44 -0
  393. package/workflows/anti-bot-diagnoser/meta.yaml +6 -0
  394. package/workflows/anti-bot-diagnoser/package.json +22 -0
  395. package/workflows/anti-bot-diagnoser/tsconfig.json +15 -0
  396. package/workflows/anti-bot-diagnoser/workflow.ts +224 -0
  397. package/workflows/api-openapi-probe/.jshook-install.json +14 -0
  398. package/workflows/api-openapi-probe/meta.yaml +6 -0
  399. package/workflows/api-openapi-probe/package.json +22 -0
  400. package/workflows/api-openapi-probe/pnpm-lock.yaml +819 -0
  401. package/workflows/api-openapi-probe/tsconfig.json +15 -0
  402. package/workflows/api-openapi-probe/workflow.ts +40 -0
  403. package/workflows/api-probe-batch/.jshook-install.json +14 -0
  404. package/workflows/api-probe-batch/LICENSE +21 -0
  405. package/workflows/api-probe-batch/README.md +45 -0
  406. package/workflows/api-probe-batch/meta.yaml +4 -0
  407. package/workflows/api-probe-batch/package.json +23 -0
  408. package/workflows/api-probe-batch/tsconfig.json +16 -0
  409. package/workflows/api-probe-batch/workflow.ts +111 -0
  410. package/workflows/auth-bootstrap/.jshook-install.json +14 -0
  411. package/workflows/auth-bootstrap/LICENSE +21 -0
  412. package/workflows/auth-bootstrap/README.md +74 -0
  413. package/workflows/auth-bootstrap/meta.yaml +4 -0
  414. package/workflows/auth-bootstrap/package.json +23 -0
  415. package/workflows/auth-bootstrap/tsconfig.json +16 -0
  416. package/workflows/auth-bootstrap/workflow.ts +141 -0
  417. package/workflows/auth-extract/.jshook-install.json +14 -0
  418. package/workflows/auth-extract/meta.yaml +6 -0
  419. package/workflows/auth-extract/package.json +22 -0
  420. package/workflows/auth-extract/pnpm-lock.yaml +819 -0
  421. package/workflows/auth-extract/tsconfig.json +15 -0
  422. package/workflows/auth-extract/workflow.ts +36 -0
  423. package/workflows/auth-surface-mapper/.jshook-install.json +14 -0
  424. package/workflows/auth-surface-mapper/meta.yaml +6 -0
  425. package/workflows/auth-surface-mapper/package.json +22 -0
  426. package/workflows/auth-surface-mapper/pnpm-lock.yaml +819 -0
  427. package/workflows/auth-surface-mapper/tsconfig.json +15 -0
  428. package/workflows/auth-surface-mapper/workflow.ts +104 -0
  429. package/workflows/batch-register/.jshook-install.json +14 -0
  430. package/workflows/batch-register/LICENSE +21 -0
  431. package/workflows/batch-register/README.md +39 -0
  432. package/workflows/batch-register/meta.yaml +4 -0
  433. package/workflows/batch-register/package.json +23 -0
  434. package/workflows/batch-register/tsconfig.json +16 -0
  435. package/workflows/batch-register/workflow.ts +67 -0
  436. package/workflows/bundle-recovery/.jshook-install.json +14 -0
  437. package/workflows/bundle-recovery/LICENSE +21 -0
  438. package/workflows/bundle-recovery/README.md +105 -0
  439. package/workflows/bundle-recovery/docs/agent-recipes.md +44 -0
  440. package/workflows/bundle-recovery/meta.yaml +6 -0
  441. package/workflows/bundle-recovery/package.json +22 -0
  442. package/workflows/bundle-recovery/tsconfig.json +15 -0
  443. package/workflows/bundle-recovery/workflow.ts +179 -0
  444. package/workflows/challenge-detector/.jshook-install.json +14 -0
  445. package/workflows/challenge-detector/meta.yaml +14 -0
  446. package/workflows/challenge-detector/package.json +22 -0
  447. package/workflows/challenge-detector/pnpm-lock.yaml +819 -0
  448. package/workflows/challenge-detector/tsconfig.json +15 -0
  449. package/workflows/challenge-detector/workflow.ts +298 -0
  450. package/workflows/deobfuscation-pipeline/.jshook-install.json +14 -0
  451. package/workflows/deobfuscation-pipeline/meta.yaml +6 -0
  452. package/workflows/deobfuscation-pipeline/package.json +22 -0
  453. package/workflows/deobfuscation-pipeline/pnpm-lock.yaml +819 -0
  454. package/workflows/deobfuscation-pipeline/tsconfig.json +15 -0
  455. package/workflows/deobfuscation-pipeline/workflow.ts +119 -0
  456. package/workflows/electron-bridge-mapper/.jshook-install.json +14 -0
  457. package/workflows/electron-bridge-mapper/meta.yaml +6 -0
  458. package/workflows/electron-bridge-mapper/package.json +22 -0
  459. package/workflows/electron-bridge-mapper/pnpm-lock.yaml +819 -0
  460. package/workflows/electron-bridge-mapper/tsconfig.json +15 -0
  461. package/workflows/electron-bridge-mapper/workflow.ts +125 -0
  462. package/workflows/evidence-pack/.jshook-install.json +14 -0
  463. package/workflows/evidence-pack/LICENSE +21 -0
  464. package/workflows/evidence-pack/README.md +105 -0
  465. package/workflows/evidence-pack/docs/agent-recipes.md +44 -0
  466. package/workflows/evidence-pack/meta.yaml +6 -0
  467. package/workflows/evidence-pack/package.json +22 -0
  468. package/workflows/evidence-pack/tsconfig.json +15 -0
  469. package/workflows/evidence-pack/workflow.ts +154 -0
  470. package/workflows/js-bundle-search/.jshook-install.json +14 -0
  471. package/workflows/js-bundle-search/LICENSE +21 -0
  472. package/workflows/js-bundle-search/README.md +46 -0
  473. package/workflows/js-bundle-search/meta.yaml +4 -0
  474. package/workflows/js-bundle-search/package.json +23 -0
  475. package/workflows/js-bundle-search/tsconfig.json +16 -0
  476. package/workflows/js-bundle-search/workflow.ts +118 -0
  477. package/workflows/protocol-registry/.jshook-install.json +14 -0
  478. package/workflows/protocol-registry/meta.yaml +6 -0
  479. package/workflows/protocol-registry/package.json +22 -0
  480. package/workflows/protocol-registry/pnpm-lock.yaml +819 -0
  481. package/workflows/protocol-registry/tsconfig.json +15 -0
  482. package/workflows/protocol-registry/workflow.ts +107 -0
  483. package/workflows/qwen-mail-open-latest/meta.yaml +7 -0
  484. package/workflows/qwen-mail-open-latest/package.json +22 -0
  485. package/workflows/qwen-mail-open-latest/pnpm-lock.yaml +819 -0
  486. package/workflows/qwen-mail-open-latest/tsconfig.json +15 -0
  487. package/workflows/qwen-mail-open-latest/workflow.ts +77 -0
  488. package/workflows/register-account-flow/.jshook-install.json +14 -0
  489. package/workflows/register-account-flow/LICENSE +21 -0
  490. package/workflows/register-account-flow/README.md +64 -0
  491. package/workflows/register-account-flow/meta.yaml +4 -0
  492. package/workflows/register-account-flow/package.json +23 -0
  493. package/workflows/register-account-flow/tsconfig.json +16 -0
  494. package/workflows/register-account-flow/workflow.ts +127 -0
  495. package/workflows/replay-lab/.jshook-install.json +14 -0
  496. package/workflows/replay-lab/meta.yaml +6 -0
  497. package/workflows/replay-lab/package.json +22 -0
  498. package/workflows/replay-lab/pnpm-lock.yaml +819 -0
  499. package/workflows/replay-lab/tsconfig.json +15 -0
  500. package/workflows/replay-lab/workflow.ts +106 -0
  501. package/workflows/script-evidence-scan/.jshook-install.json +14 -0
  502. package/workflows/script-evidence-scan/LICENSE +21 -0
  503. package/workflows/script-evidence-scan/README.md +61 -0
  504. package/workflows/script-evidence-scan/meta.yaml +4 -0
  505. package/workflows/script-evidence-scan/package.json +23 -0
  506. package/workflows/script-evidence-scan/tsconfig.json +16 -0
  507. package/workflows/script-evidence-scan/workflow.ts +89 -0
  508. package/workflows/signature-hunter/.jshook-install.json +14 -0
  509. package/workflows/signature-hunter/LICENSE +21 -0
  510. package/workflows/signature-hunter/README.md +105 -0
  511. package/workflows/signature-hunter/docs/agent-recipes.md +44 -0
  512. package/workflows/signature-hunter/meta.yaml +6 -0
  513. package/workflows/signature-hunter/package.json +22 -0
  514. package/workflows/signature-hunter/tsconfig.json +15 -0
  515. package/workflows/signature-hunter/workflow.ts +170 -0
  516. package/workflows/signing-lineage/.jshook-install.json +14 -0
  517. package/workflows/signing-lineage/meta.yaml +6 -0
  518. package/workflows/signing-lineage/package.json +22 -0
  519. package/workflows/signing-lineage/pnpm-lock.yaml +819 -0
  520. package/workflows/signing-lineage/tsconfig.json +15 -0
  521. package/workflows/signing-lineage/workflow.ts +120 -0
  522. package/workflows/temp-mail-extract-link/.jshook-install.json +14 -0
  523. package/workflows/temp-mail-extract-link/LICENSE +21 -0
  524. package/workflows/temp-mail-extract-link/README.md +71 -0
  525. package/workflows/temp-mail-extract-link/meta.yaml +4 -0
  526. package/workflows/temp-mail-extract-link/package.json +23 -0
  527. package/workflows/temp-mail-extract-link/tsconfig.json +16 -0
  528. package/workflows/temp-mail-extract-link/workflow.ts +221 -0
  529. package/workflows/temp-mail-open-latest/.jshook-install.json +14 -0
  530. package/workflows/temp-mail-open-latest/LICENSE +21 -0
  531. package/workflows/temp-mail-open-latest/README.md +61 -0
  532. package/workflows/temp-mail-open-latest/meta.yaml +4 -0
  533. package/workflows/temp-mail-open-latest/package.json +23 -0
  534. package/workflows/temp-mail-open-latest/tsconfig.json +16 -0
  535. package/workflows/temp-mail-open-latest/workflow.ts +136 -0
  536. package/workflows/template/.jshook-install.json +14 -0
  537. package/workflows/template/LICENSE +21 -0
  538. package/workflows/template/README.md +45 -0
  539. package/workflows/template/docs/SKILL.md +111 -0
  540. package/workflows/template/meta.yaml +6 -0
  541. package/workflows/template/package.json +22 -0
  542. package/workflows/template/pnpm-lock.yaml +819 -0
  543. package/workflows/template/tsconfig.json +15 -0
  544. package/workflows/template/workflow.ts +73 -0
  545. package/workflows/web-api-capture-session/.jshook-install.json +14 -0
  546. package/workflows/web-api-capture-session/LICENSE +21 -0
  547. package/workflows/web-api-capture-session/README.md +64 -0
  548. package/workflows/web-api-capture-session/meta.yaml +4 -0
  549. package/workflows/web-api-capture-session/package.json +23 -0
  550. package/workflows/web-api-capture-session/tsconfig.json +16 -0
  551. package/workflows/web-api-capture-session/workflow.ts +124 -0
  552. package/workflows/ws-protocol-lifter/.jshook-install.json +14 -0
  553. package/workflows/ws-protocol-lifter/LICENSE +21 -0
  554. package/workflows/ws-protocol-lifter/README.md +105 -0
  555. package/workflows/ws-protocol-lifter/docs/agent-recipes.md +44 -0
  556. package/workflows/ws-protocol-lifter/meta.yaml +6 -0
  557. package/workflows/ws-protocol-lifter/package.json +22 -0
  558. package/workflows/ws-protocol-lifter/tsconfig.json +15 -0
  559. package/workflows/ws-protocol-lifter/workflow.ts +163 -0
  560. package/dist/src/modules/analyzer/AISummarizer.d.ts +0 -39
  561. package/dist/src/modules/analyzer/AISummarizer.js +0 -122
  562. package/dist/src/modules/hook/AIHookGenerator.d.ts +0 -52
  563. package/dist/src/modules/hook/AIHookGenerator.js +0 -360
  564. package/dist/src/modules/hook/AIHookGeneratorTemplates.d.ts +0 -9
  565. package/dist/src/modules/hook/AIHookGeneratorTemplates.js +0 -157
  566. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +0 -2
  567. package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +0 -25
  568. package/dist/src/server/macros/builtins/unpacker-flow.d.ts +0 -2
  569. package/dist/src/server/macros/builtins/unpacker-flow.js +0 -25
  570. package/dist/src/services/LLMService.d.ts +0 -37
  571. package/dist/src/services/LLMService.js +0 -233
  572. package/dist/src/services/prompts/analysis.d.ts +0 -9
  573. package/dist/src/services/prompts/analysis.js +0 -158
  574. package/dist/src/services/prompts/crypto.d.ts +0 -2
  575. package/dist/src/services/prompts/crypto.js +0 -108
  576. package/dist/src/services/prompts/deobfuscation.d.ts +0 -6
  577. package/dist/src/services/prompts/deobfuscation.js +0 -300
  578. package/dist/src/services/prompts/environment.d.ts +0 -16
  579. package/dist/src/services/prompts/environment.js +0 -372
  580. package/dist/src/services/prompts/intelligence.d.ts +0 -4
  581. package/dist/src/services/prompts/intelligence.js +0 -250
  582. package/dist/src/services/prompts/taint.d.ts +0 -2
  583. package/dist/src/services/prompts/taint.js +0 -54
@@ -7,11 +7,7 @@ import { JSVMP_DEOBFUSCATE_TIMEOUT_MS, JSVMP_MAX_ITERATIONS } from '../../consta
7
7
  import { ExecutionSandbox } from '../security/ExecutionSandbox.js';
8
8
  import { restoreCustomVMBasic, restoreJSVMPCode, } from '../deobfuscator/JSVMPDeobfuscator.restore.js';
9
9
  export class JSVMPDeobfuscator {
10
- llm;
11
10
  sandbox = new ExecutionSandbox();
12
- constructor(llm) {
13
- this.llm = llm;
14
- }
15
11
  async deobfuscate(options) {
16
12
  const startTime = Date.now();
17
13
  const { code, aggressive = false, extractInstructions = false, timeout = JSVMP_DEOBFUSCATE_TIMEOUT_MS, maxIterations = JSVMP_MAX_ITERATIONS, } = options;
@@ -205,9 +201,8 @@ export class JSVMPDeobfuscator {
205
201
  sourceType: 'unambiguous',
206
202
  plugins: ['jsx', 'typescript'],
207
203
  });
208
- const self = this;
209
204
  traverse(ast, {
210
- SwitchStatement(path) {
205
+ SwitchStatement: (path) => {
211
206
  if (path.node.cases.length === features.instructionCount) {
212
207
  path.node.cases.forEach((caseNode, index) => {
213
208
  const opcode = caseNode.test
@@ -217,7 +212,7 @@ export class JSVMPDeobfuscator {
217
212
  ? caseNode.test.value
218
213
  : index
219
214
  : index;
220
- const type = self.inferInstructionType(caseNode);
215
+ const type = this.inferInstructionType(caseNode);
221
216
  instructions.push({
222
217
  opcode,
223
218
  name: `INST_${opcode}`,
@@ -289,7 +284,6 @@ export class JSVMPDeobfuscator {
289
284
  async restoreCode(code, _features, vmType, aggressive, _timeout, _maxIterations) {
290
285
  void this.restoreCustomVMBasic;
291
286
  return restoreJSVMPCode({
292
- llm: this.llm,
293
287
  sandbox: this.sandbox,
294
288
  }, code, vmType, aggressive);
295
289
  }
@@ -1,4 +1,3 @@
1
- import type { LLMService } from '../../services/LLMService.js';
2
1
  import type { UnresolvedPart, VMType } from '../../types/index.js';
3
2
  import { type ExecutionSandbox } from '../security/ExecutionSandbox.js';
4
3
  type RestoreResult = {
@@ -8,7 +7,7 @@ type RestoreResult = {
8
7
  unresolvedParts?: UnresolvedPart[];
9
8
  };
10
9
  type RestoreContext = {
11
- llm?: LLMService;
10
+ llm?: any;
12
11
  sandbox: ExecutionSandbox;
13
12
  };
14
13
  export declare function restoreJSVMPCode(context: RestoreContext, code: string, vmType: VMType, aggressive: boolean): Promise<RestoreResult>;
@@ -1,4 +1,3 @@
1
- import { generateVMAnalysisMessages } from '../../services/prompts/deobfuscation.js';
2
1
  import { logger } from '../../utils/logger.js';
3
2
  import {} from '../security/ExecutionSandbox.js';
4
3
  export async function restoreJSVMPCode(context, code, vmType, aggressive) {
@@ -184,60 +183,9 @@ async function restoreJJEncode(context, code, warnings) {
184
183
  };
185
184
  }
186
185
  }
187
- async function restoreCustomVM(context, code, aggressive, warnings, unresolvedParts) {
188
- if (!context.llm) {
189
- warnings.push('LLM service unavailable, using fallback');
190
- warnings.push('Configure DeepSeek/OpenAI API key for AI-assisted deobfuscation');
191
- return restoreCustomVMBasic(code, aggressive, warnings, unresolvedParts);
192
- }
193
- try {
194
- logger.info(' LLMVM...');
195
- const response = await context.llm.chat(generateVMAnalysisMessages(code));
196
- const analysisText = response.content;
197
- logger.info(' LLM');
198
- logger.info(`: ${analysisText.substring(0, 200)}...`);
199
- let vmAnalysis;
200
- try {
201
- const jsonMatch = analysisText.match(/\{[\s\S]*\}/);
202
- if (jsonMatch) {
203
- const parsed = JSON.parse(jsonMatch[0]);
204
- if (parsed && typeof parsed === 'object') {
205
- vmAnalysis = parsed;
206
- }
207
- }
208
- }
209
- catch {
210
- warnings.push('LLM analysis failed, using fallback');
211
- return restoreCustomVMBasic(code, aggressive, warnings, unresolvedParts);
212
- }
213
- if (vmAnalysis) {
214
- warnings.push(`LLMVM: ${typeof vmAnalysis.vmType === 'string' ? vmAnalysis.vmType : 'Unknown'}`);
215
- const vmWarnings = vmAnalysis.warnings;
216
- if (Array.isArray(vmWarnings)) {
217
- warnings.push(...vmWarnings);
218
- }
219
- const restorationSteps = vmAnalysis.restorationSteps;
220
- if (Array.isArray(restorationSteps)) {
221
- unresolvedParts.push({
222
- location: 'VM Restoration',
223
- reason: 'LLM',
224
- suggestion: restorationSteps.join('\n'),
225
- });
226
- }
227
- return {
228
- code,
229
- confidence: 0.6,
230
- warnings,
231
- unresolvedParts: unresolvedParts.length > 0 ? unresolvedParts : undefined,
232
- };
233
- }
234
- return restoreCustomVMBasic(code, aggressive, warnings, unresolvedParts);
235
- }
236
- catch (error) {
237
- logger.error('LLM', error);
238
- warnings.push(`LLM: ${error}`);
239
- return restoreCustomVMBasic(code, aggressive, warnings, unresolvedParts);
240
- }
186
+ async function restoreCustomVM(_context, code, aggressive, warnings, unresolvedParts) {
187
+ warnings.push('AI-assisted deobfuscation removed, using fallback directly.');
188
+ return restoreCustomVMBasic(code, aggressive, warnings, unresolvedParts);
241
189
  }
242
190
  export function restoreCustomVMBasic(code, aggressive, warnings, unresolvedParts) {
243
191
  let restored = code;
@@ -144,12 +144,11 @@ export class JScramberDeobfuscator {
144
144
  }
145
145
  restoreControlFlow(ast) {
146
146
  let count = 0;
147
- const self = this;
148
147
  traverse(ast, {
149
- WhileStatement(path) {
150
- if (self.isControlFlowFlatteningPattern(path.node)) {
148
+ WhileStatement: (path) => {
149
+ if (this.isControlFlowFlatteningPattern(path.node)) {
151
150
  try {
152
- self.unflattenControlFlowPattern(path);
151
+ this.unflattenControlFlowPattern(path);
153
152
  count++;
154
153
  }
155
154
  catch { }
@@ -1,4 +1,3 @@
1
- import { type LLMService } from '../../services/LLMService.js';
2
1
  type VMStructure = {
3
2
  hasInterpreter: boolean;
4
3
  instructionTypes: string[];
@@ -11,15 +10,14 @@ type VMComponents = {
11
10
  interpreterFunction?: string;
12
11
  };
13
12
  export declare class VMDeobfuscator {
14
- private llm?;
15
- constructor(llm?: LLMService);
13
+ constructor(legacyDependency?: unknown);
16
14
  detectVMProtection(code: string): {
17
15
  detected: boolean;
18
16
  type: string;
19
17
  instructionCount: number;
20
18
  };
21
19
  countVMInstructions(code: string): number;
22
- deobfuscateVM(code: string, vmInfo: {
20
+ deobfuscateVM(code: string, _vmInfo: {
23
21
  type: string;
24
22
  instructionCount: number;
25
23
  }): Promise<{
@@ -28,12 +26,6 @@ export declare class VMDeobfuscator {
28
26
  }>;
29
27
  analyzeVMStructure(code: string): VMStructure;
30
28
  extractVMComponents(code: string): VMComponents;
31
- buildVMDeobfuscationPrompt(code: string, vmInfo: {
32
- type: string;
33
- instructionCount: number;
34
- }, vmStructure: VMStructure, vmComponents: VMComponents): string;
35
29
  simplifyVMCode(code: string, vmComponents: VMComponents): string;
36
- extractCodeFromLLMResponse(response: string): string;
37
- isValidJavaScript(code: string): boolean;
38
30
  }
39
31
  export {};
@@ -1,14 +1,10 @@
1
1
  import { logger } from '../../utils/logger.js';
2
- import { VM_DEOBF_LLM_MAX_TOKENS } from '../../constants.js';
3
- import {} from '../../services/LLMService.js';
4
2
  import * as parser from '@babel/parser';
5
3
  import traverse from '@babel/traverse';
6
4
  import * as t from '@babel/types';
7
- import { generateVMDeobfuscationMessages } from '../../services/prompts/deobfuscation.js';
8
5
  export class VMDeobfuscator {
9
- llm;
10
- constructor(llm) {
11
- this.llm = llm;
6
+ constructor(legacyDependency) {
7
+ void legacyDependency;
12
8
  }
13
9
  detectVMProtection(code) {
14
10
  const vmPatterns = [
@@ -31,7 +27,7 @@ export class VMDeobfuscator {
31
27
  const match = code.match(/case\s+\d+:/g);
32
28
  return match ? match.length : 0;
33
29
  }
34
- async deobfuscateVM(code, vmInfo) {
30
+ async deobfuscateVM(code, _vmInfo) {
35
31
  logger.warn('VM deobfuscation is experimental and may fail');
36
32
  try {
37
33
  const vmStructure = this.analyzeVMStructure(code);
@@ -39,24 +35,6 @@ export class VMDeobfuscator {
39
35
  logger.info(`Detected VM interpreter with ${vmStructure.instructionTypes.length} instruction types`);
40
36
  }
41
37
  const vmComponents = this.extractVMComponents(code);
42
- if (this.llm) {
43
- const prompt = this.buildVMDeobfuscationPrompt(code, vmInfo, vmStructure, vmComponents);
44
- const response = await this.llm.chat(generateVMDeobfuscationMessages(prompt), {
45
- temperature: 0.05,
46
- maxTokens: VM_DEOBF_LLM_MAX_TOKENS,
47
- });
48
- const deobfuscatedCode = this.extractCodeFromLLMResponse(response.content);
49
- if (this.isValidJavaScript(deobfuscatedCode)) {
50
- logger.success('VM deobfuscation succeeded via LLM');
51
- return {
52
- success: true,
53
- code: deobfuscatedCode,
54
- };
55
- }
56
- else {
57
- logger.warn('LLM output is not valid JavaScript, falling back to original');
58
- }
59
- }
60
38
  const simplifiedCode = this.simplifyVMCode(code, vmComponents);
61
39
  return {
62
40
  success: simplifiedCode !== code,
@@ -134,91 +112,6 @@ export class VMDeobfuscator {
134
112
  }
135
113
  return components;
136
114
  }
137
- buildVMDeobfuscationPrompt(code, vmInfo, vmStructure, vmComponents) {
138
- const codeSnippet = code.length > 2000 ? code.slice(0, 2000) + '\n...(truncated)' : code;
139
- return `# VM Deobfuscation Analysis
140
-
141
- ## VM Profile
142
- - **Architecture**: ${vmInfo.type}
143
- - **Instruction Count**: ${vmInfo.instructionCount}
144
- - **Interpreter Loop**: ${vmStructure.hasInterpreter ? 'Detected' : 'Not detected'}
145
- - **Stack Operations**: ${vmStructure.hasStack ? 'Present' : 'Absent'}
146
- - **Register Usage**: ${vmStructure.hasRegisters ? 'Present' : 'Absent'}
147
- - **Instruction Variety**: ${vmStructure.instructionTypes.length} distinct types
148
-
149
- ## Identified Components
150
- ${vmComponents.instructionArray ? ` Instruction Array: Found at ${vmComponents.instructionArray}` : ' Instruction Array: Not found'}
151
- ${vmComponents.dataArray ? ` Data Array: Found at ${vmComponents.dataArray}` : ' Data Array: Not found'}
152
- ${vmComponents.interpreterFunction ? ` Interpreter Function: Found at ${vmComponents.interpreterFunction}` : ' Interpreter Function: Not found'}
153
-
154
- ## VM-Protected Code
155
- \`\`\`javascript
156
- ${codeSnippet}
157
- \`\`\`
158
-
159
- ## Deobfuscation Instructions (Chain-of-Thought)
160
-
161
- ### Step 1: VM Structure Analysis
162
- Examine the code to identify:
163
- - Instruction array (usually a large array of numbers/strings)
164
- - Interpreter loop (while/for loop processing instructions)
165
- - Stack/register variables
166
- - Opcode handlers (switch-case or if-else chains)
167
-
168
- ### Step 2: Instruction Decoding
169
- For each instruction type, determine:
170
- - What JavaScript operation it represents (e.g., opcode 0x01 = addition)
171
- - How it manipulates the stack/registers
172
- - What side effects it has (function calls, property access, etc.)
173
-
174
- ### Step 3: Control Flow Reconstruction
175
- - Map VM jumps/branches to JavaScript if/while/for statements
176
- - Identify function calls and returns
177
- - Reconstruct try-catch blocks if present
178
-
179
- ### Step 4: Code Generation
180
- - Replace VM instruction sequences with equivalent JavaScript
181
- - Use meaningful variable names based on usage context
182
- - Remove VM overhead (interpreter loop, stack management)
183
- - Preserve all side effects and program behavior
184
-
185
- ### Step 5: Validation
186
- - Ensure output is syntactically valid JavaScript
187
- - Verify no functionality is lost
188
- - Add comments for complex patterns
189
-
190
- ## Example Transformation (Few-shot Learning)
191
-
192
- **VM Code (Before)**:
193
- \`\`\`javascript
194
- var vm = [0x01, 0x05, 0x02, 0x03, 0x10];
195
- var stack = [];
196
- for(var i=0; i<vm.length; i++) {
197
- switch(vm[i]) {
198
- case 0x01: stack.push(5); break;
199
- case 0x02: stack.push(3); break;
200
- case 0x10: var b=stack.pop(), a=stack.pop(); stack.push(a+b); break;
201
- }
202
- }
203
- console.log(stack[0]);
204
- \`\`\`
205
-
206
- **Deobfuscated Code (After)**:
207
- \`\`\`javascript
208
- var result = 5 + 3;
209
- console.log(result);
210
- \`\`\`
211
-
212
- ## Critical Requirements
213
- 1. Output ONLY the deobfuscated JavaScript code
214
- 2. NO markdown code blocks, NO explanations, NO comments outside the code
215
- 3. Code must be syntactically valid and executable
216
- 4. Preserve exact program logic and side effects
217
- 5. If full deobfuscation is impossible, return the best partial result
218
-
219
- ## Output Format
220
- Return clean JavaScript code starting immediately (no preamble).`;
221
- }
222
115
  simplifyVMCode(code, vmComponents) {
223
116
  try {
224
117
  let simplified = code;
@@ -237,22 +130,4 @@ Return clean JavaScript code starting immediately (no preamble).`;
237
130
  return code;
238
131
  }
239
132
  }
240
- extractCodeFromLLMResponse(response) {
241
- let code = response.trim();
242
- code = code.replace(/^```(?:javascript|js)?\s*\n/i, '');
243
- code = code.replace(/\n```\s*$/i, '');
244
- return code.trim();
245
- }
246
- isValidJavaScript(code) {
247
- try {
248
- parser.parse(code, {
249
- sourceType: 'module',
250
- plugins: ['jsx', 'typescript'],
251
- });
252
- return true;
253
- }
254
- catch {
255
- return false;
256
- }
257
- }
258
133
  }
@@ -1,5 +1,6 @@
1
1
  import { readdir, rm, stat } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
+ import vm from 'node:vm';
3
4
  import { logger } from '../../utils/logger.js';
4
5
  const DEFAULT_OPTIONS = {
5
6
  jsx: true,
@@ -60,7 +61,7 @@ function applyBundleMappings(bundle, mappings) {
60
61
  function summarizeBundle(bundle, options, remapped) {
61
62
  const maxBundleModules = options.maxBundleModules ?? MAX_BUNDLE_MODULES;
62
63
  const modules = Array.from(bundle.modules.values())
63
- .sort((left, right) => {
64
+ .toSorted((left, right) => {
64
65
  if (left.isEntry !== right.isEntry) {
65
66
  return left.isEntry ? -1 : 1;
66
67
  }
@@ -103,7 +104,7 @@ async function collectSavedArtifacts(rootDir, currentDir = rootDir) {
103
104
  type: 'file',
104
105
  });
105
106
  }
106
- return artifacts.sort((left, right) => left.path.localeCompare(right.path));
107
+ return artifacts.toSorted((left, right) => left.path.localeCompare(right.path));
107
108
  }
108
109
  export async function runWebcrack(code, options) {
109
110
  const optionsUsed = normalizeOptions(options);
@@ -117,6 +118,17 @@ export async function runWebcrack(code, options) {
117
118
  reason,
118
119
  };
119
120
  }
121
+ let sandboxOption;
122
+ try {
123
+ await import('isolated-vm');
124
+ }
125
+ catch {
126
+ logger.warn('isolated-vm is unavailable (likely Node 24 incompatibility). Falling back to native node:vm for deobfuscation sandbox.');
127
+ sandboxOption = async (evalCode) => {
128
+ const context = vm.createContext(Object.create(null));
129
+ return vm.runInContext(evalCode, context, { timeout: 8000 });
130
+ };
131
+ }
120
132
  try {
121
133
  const { webcrack } = (await import('webcrack'));
122
134
  const result = await webcrack(code, {
@@ -125,6 +137,7 @@ export async function runWebcrack(code, options) {
125
137
  deobfuscate: true,
126
138
  unminify: optionsUsed.unminify,
127
139
  mangle: optionsUsed.mangle,
140
+ ...(sandboxOption ? { sandbox: sandboxOption } : {}),
128
141
  });
129
142
  const remapped = result.bundle
130
143
  ? applyBundleMappings(result.bundle, options.mappings)
@@ -1,4 +1,3 @@
1
- import type { LLMService } from '../../services/LLMService.js';
2
1
  import type { DetectedEnvironmentVariables, MissingAPI } from '../../types/index.js';
3
2
  import type { BrowserType } from '../emulator/BrowserEnvironmentRules.js';
4
3
  export interface AIAnalysisResult {
@@ -18,13 +17,11 @@ export interface AIAnalysisResult {
18
17
  confidence: number;
19
18
  }
20
19
  export declare class AIEnvironmentAnalyzer {
21
- private llm?;
22
- constructor(llm?: LLMService | undefined);
23
- analyze(code: string, detected: DetectedEnvironmentVariables, missing: MissingAPI[], browserType?: BrowserType): Promise<AIAnalysisResult>;
24
- private parseAIResponse;
20
+ constructor(legacyDependency?: unknown);
21
+ analyze(_code: string, _detected: DetectedEnvironmentVariables, _missing: MissingAPI[], _browserType?: BrowserType): Promise<AIAnalysisResult>;
25
22
  private getEmptyResult;
26
- analyzeAntiCrawl(code: string): Promise<AIAnalysisResult['antiCrawlFeatures']>;
27
- inferAPIImplementation(apiPath: string, context: string): Promise<string | null>;
28
- generateSuggestions(detected: DetectedEnvironmentVariables, missing: MissingAPI[], browserType: BrowserType): Promise<string[]>;
23
+ analyzeAntiCrawl(_code: string): Promise<AIAnalysisResult['antiCrawlFeatures']>;
24
+ inferAPIImplementation(_apiPath: string, _context: string): Promise<string | null>;
25
+ generateSuggestions(detected: DetectedEnvironmentVariables, missing: MissingAPI[], _browserType: BrowserType): Promise<string[]>;
29
26
  private getDefaultSuggestions;
30
27
  }
@@ -1,48 +1,9 @@
1
- import { logger } from '../../utils/logger.js';
2
- import { generateBrowserEnvAnalysisMessages, generateAntiCrawlAnalysisMessages, generateAPIImplementationMessages, generateEnvironmentSuggestionsMessages, } from '../../services/prompts/environment.js';
3
1
  export class AIEnvironmentAnalyzer {
4
- llm;
5
- constructor(llm) {
6
- this.llm = llm;
2
+ constructor(legacyDependency) {
3
+ void legacyDependency;
7
4
  }
8
- async analyze(code, detected, missing, browserType = 'chrome') {
9
- if (!this.llm) {
10
- logger.warn('LLM service unavailable, skipping AI environment analysis');
11
- return this.getEmptyResult();
12
- }
13
- try {
14
- logger.info(' AI...');
15
- const response = await this.llm.chat(generateBrowserEnvAnalysisMessages(code, detected, missing, browserType));
16
- const result = this.parseAIResponse(response.content);
17
- logger.info(`AI environment analysis complete, confidence: ${(result.confidence * 100).toFixed(1)}%`);
18
- return result;
19
- }
20
- catch (error) {
21
- logger.error('AI', error);
22
- return this.getEmptyResult();
23
- }
24
- }
25
- parseAIResponse(response) {
26
- try {
27
- const jsonMatch = response.match(/```json\s*([\s\S]*?)\s*```/) || response.match(/\{[\s\S]*\}/);
28
- if (!jsonMatch) {
29
- logger.warn('AIJSON');
30
- return this.getEmptyResult();
31
- }
32
- const jsonStr = jsonMatch[1] || jsonMatch[0];
33
- const parsed = JSON.parse(jsonStr);
34
- return {
35
- recommendedVariables: parsed.recommendedVariables || {},
36
- recommendedAPIs: parsed.recommendedAPIs || [],
37
- antiCrawlFeatures: parsed.antiCrawlFeatures || [],
38
- suggestions: parsed.suggestions || [],
39
- confidence: parsed.confidence || 0.5,
40
- };
41
- }
42
- catch (error) {
43
- logger.error('AI', error);
44
- return this.getEmptyResult();
45
- }
5
+ async analyze(_code, _detected, _missing, _browserType = 'chrome') {
6
+ return this.getEmptyResult();
46
7
  }
47
8
  getEmptyResult() {
48
9
  return {
@@ -53,67 +14,14 @@ export class AIEnvironmentAnalyzer {
53
14
  confidence: 0,
54
15
  };
55
16
  }
56
- async analyzeAntiCrawl(code) {
57
- if (!this.llm) {
58
- return [];
59
- }
60
- try {
61
- const response = await this.llm.chat(generateAntiCrawlAnalysisMessages(code));
62
- const jsonMatch = response.content.match(/```json\s*([\s\S]*?)\s*```/) ||
63
- response.content.match(/\[[\s\S]*\]/);
64
- if (jsonMatch) {
65
- const jsonStr = jsonMatch[1] || jsonMatch[0];
66
- return JSON.parse(jsonStr);
67
- }
68
- return [];
69
- }
70
- catch (error) {
71
- logger.error('', error);
72
- return [];
73
- }
17
+ async analyzeAntiCrawl(_code) {
18
+ return [];
74
19
  }
75
- async inferAPIImplementation(apiPath, context) {
76
- if (!this.llm) {
77
- return null;
78
- }
79
- try {
80
- const response = await this.llm.chat(generateAPIImplementationMessages(apiPath, context));
81
- const codeMatch = response.content.match(/```(?:javascript|js)?\s*([\s\S]*?)\s*```/);
82
- if (codeMatch?.[1]) {
83
- return codeMatch[1].trim();
84
- }
85
- const trimmed = response.content.trim();
86
- if (trimmed.includes('function') || trimmed.includes('const') || trimmed.includes('var')) {
87
- return trimmed;
88
- }
89
- return null;
90
- }
91
- catch (error) {
92
- logger.error('API', error);
93
- return null;
94
- }
20
+ async inferAPIImplementation(_apiPath, _context) {
21
+ return null;
95
22
  }
96
- async generateSuggestions(detected, missing, browserType) {
97
- if (!this.llm) {
98
- return this.getDefaultSuggestions(detected, missing);
99
- }
100
- try {
101
- const response = await this.llm.chat(generateEnvironmentSuggestionsMessages(detected, missing, browserType));
102
- const jsonMatch = response.content.match(/```json\s*([\s\S]*?)\s*```/) ||
103
- response.content.match(/\[[\s\S]*\]/);
104
- if (jsonMatch) {
105
- const jsonStr = jsonMatch[1] || jsonMatch[0];
106
- const suggestions = JSON.parse(jsonStr);
107
- if (Array.isArray(suggestions) && suggestions.every((s) => typeof s === 'string')) {
108
- return suggestions;
109
- }
110
- }
111
- return this.getDefaultSuggestions(detected, missing);
112
- }
113
- catch (error) {
114
- logger.error('', error);
115
- return this.getDefaultSuggestions(detected, missing);
116
- }
23
+ async generateSuggestions(detected, missing, _browserType) {
24
+ return this.getDefaultSuggestions(detected, missing);
117
25
  }
118
26
  getDefaultSuggestions(detected, missing) {
119
27
  const suggestions = [];
@@ -1,9 +1,7 @@
1
1
  import type { EnvironmentEmulatorOptions, EnvironmentEmulatorResult } from '../../types/index.js';
2
- import type { LLMService } from '../../services/LLMService.js';
3
2
  export declare class EnvironmentEmulator {
4
3
  private browser?;
5
- private llm?;
6
- constructor(llm?: LLMService);
4
+ constructor(legacyDependency?: unknown);
7
5
  analyze(options: EnvironmentEmulatorOptions): Promise<EnvironmentEmulatorResult>;
8
6
  private detectEnvironmentVariables;
9
7
  private getMemberExpressionPath;
@@ -14,8 +12,6 @@ export declare class EnvironmentEmulator {
14
12
  private resolveExecutablePath;
15
13
  private identifyMissingAPIs;
16
14
  private getSuggestionForMissingAPI;
17
- private generateMissingAPIImplementationsWithAI;
18
- private inferMissingVariablesWithAI;
19
15
  cleanup(): Promise<void>;
20
16
  private isRecord;
21
17
  private isIdentifierNode;