@jshookmcp/jshook 0.3.0 → 0.3.2

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 (346) hide show
  1. package/LICENSE +661 -661
  2. package/README.md +32 -49
  3. package/README.zh.md +32 -47
  4. package/dist/AntiCheatDetector-B6d4Qe9D.mjs +1 -0
  5. package/dist/BrowserSessionCoordinator-BJ-HOxo0.mjs +1 -0
  6. package/dist/CacheAdapters-CsNtQIR8.mjs +1 -0
  7. package/dist/CodeInjector-Cll_7bLJ.mjs +1 -0
  8. package/dist/ConsoleMonitor-CxDJV15E.mjs +306 -0
  9. package/dist/DOMInspector-C19J4zeq.mjs +95 -0
  10. package/dist/DarwinAPI-ZfQdpLNI.mjs +1 -0
  11. package/dist/DetailedDataManager-DmQ1LT-W.mjs +1 -0
  12. package/dist/EventBus-DL8iLA09.mjs +1 -0
  13. package/dist/EvidenceGraphBridge-BtbwXsLC.mjs +1 -0
  14. package/dist/ExtensionManager-BD724zkO.mjs +1 -0
  15. package/dist/ExtensionManager.tools-oVMJgPcN.mjs +1 -0
  16. package/dist/FingerprintManager-DT0EAUEo.mjs +1 -0
  17. package/dist/HardwareBreakpoint-BUfPdp0f.mjs +1 -0
  18. package/dist/HeapAnalyzer-B_aqY8oj.mjs +1 -0
  19. package/dist/{HookGeneratorBuilders.core.generators.storage-CTbB4Lcx.mjs → HookGeneratorBuilders.core.generators.storage-DzD6dIJd.mjs} +66 -101
  20. package/dist/InstrumentationSession-D_G1ZPyd.mjs +1 -0
  21. package/dist/MCPServer.search.handlers.domain-BbS-6LnX.mjs +1 -0
  22. package/dist/MemoryController-X1XNSn1n.mjs +2 -0
  23. package/dist/MemoryScanSession-DG_F-PjE.mjs +1 -0
  24. package/dist/MemoryScanner-g1_L1ub5.mjs +1 -0
  25. package/dist/NativeMemoryManager.impl-DniBe2wf.mjs +1 -0
  26. package/dist/NativeMemoryManager.utils-BHy1P_jM.mjs +1 -0
  27. package/dist/NetworkMonitor-B_-au6aV.mjs +185 -0
  28. package/dist/PEAnalyzer-yWQaGrcx.mjs +1 -0
  29. package/dist/PageController-Dfsm1_o7.mjs +1 -0
  30. package/dist/PointerChainEngine-BhCUkmxY.mjs +1 -0
  31. package/dist/PrerequisiteError-BjCQA-gK.mjs +1 -0
  32. package/dist/ProcessRegistry-C-bN48oR.mjs +1 -0
  33. package/dist/ResponseBuilder-BfWP-uaT.mjs +1 -0
  34. package/dist/ReverseEvidenceGraph-BhSYYdiI.mjs +2 -0
  35. package/dist/RingBuffer-Dm54ELKT.mjs +1 -0
  36. package/dist/ScriptManager-LWGPTdvD.mjs +7 -0
  37. package/dist/ServerRuntimeState-D2bWHqEE.mjs +1 -0
  38. package/dist/Speedhack-yseDPSZ9.mjs +1 -0
  39. package/dist/StealthVerifier-BmcxfwSF.mjs +1 -0
  40. package/dist/StructureAnalyzer-C5lpuZkg.mjs +2 -0
  41. package/dist/ToolCatalog-CYdD9F5f.mjs +1 -0
  42. package/dist/ToolError-DWU_z7gp.mjs +1 -0
  43. package/dist/ToolProbe-C7ZU2x7M.mjs +1 -0
  44. package/dist/ToolRegistry-C5oB8KP8.mjs +1 -0
  45. package/dist/ToolRouter.policy-CfhJczkt.mjs +4 -0
  46. package/dist/TraceRecorder-BiJWBXHX.mjs +272 -0
  47. package/dist/VersionDetector-CHT36Az0.mjs +9 -0
  48. package/dist/Win32API-eUCF57l_.mjs +1 -0
  49. package/dist/Win32Debug-CYrIQBvr.mjs +1 -0
  50. package/dist/WorkflowEngine-D876meOO.mjs +1 -0
  51. package/dist/analysis-D4swdMvq.mjs +6 -0
  52. package/dist/{antidebug-BRKeyt27.mjs → antidebug-7L3ygj_9.mjs} +8 -259
  53. package/dist/apk-packer-BqXcInnX.mjs +1 -0
  54. package/dist/artifactRetention-BCPQASm7.mjs +1 -0
  55. package/dist/artifacts-CkodUM4j.mjs +1 -0
  56. package/dist/authorization-schema-BOFwSXUN.mjs +1 -0
  57. package/dist/betterSqlite3-Brtq-SIQ.mjs +1 -0
  58. package/dist/binary-instrument-DU7V6TUM.mjs +7 -0
  59. package/dist/binary-secrets-PdMVoyt0.mjs +1 -0
  60. package/dist/bind-helpers-m2U8glkF.mjs +1 -0
  61. package/dist/boringssl-inspector-BBaJwwkU.mjs +2 -0
  62. package/dist/browser-Qqco2rOT.mjs +11 -0
  63. package/dist/capabilities-CyXuKUl1.mjs +1 -0
  64. package/dist/chunk-C_pMuVsO.mjs +1 -0
  65. package/dist/collector-Bpl6qy2L.mjs +1 -0
  66. package/dist/concurrency-DCr8WQ2M.mjs +1 -0
  67. package/dist/constants-BYj8Xek8.mjs +1 -0
  68. package/dist/coordination-CWXW1o8K.mjs +1 -0
  69. package/dist/dart-inspector-7AkPeZ_Q.mjs +0 -0
  70. package/dist/debugger-DyALjYMk.mjs +1 -0
  71. package/dist/definitions-BWxBke3r.mjs +1 -0
  72. package/dist/definitions-BYwATKc-.mjs +1 -0
  73. package/dist/definitions-B_83XfNQ.mjs +1 -0
  74. package/dist/definitions-Bf3H1EwV.mjs +1 -0
  75. package/dist/definitions-BftdXgXI.mjs +1 -0
  76. package/dist/definitions-Bio5XJYy.mjs +1 -0
  77. package/dist/definitions-C3qNgSn1.mjs +1 -0
  78. package/dist/definitions-CB6vmOer.mjs +1 -0
  79. package/dist/definitions-CMZRSy3k.mjs +1 -0
  80. package/dist/definitions-CQd7yCQH.mjs +1 -0
  81. package/dist/definitions-CT8ln6GQ.mjs +1 -0
  82. package/dist/definitions-Cenu6mxo.mjs +1 -0
  83. package/dist/definitions-D4g-MS10.mjs +1 -0
  84. package/dist/definitions-D5wl_8HN.mjs +1 -0
  85. package/dist/definitions-DAQm1Xar.mjs +1 -0
  86. package/dist/definitions-DP1vgxEY.mjs +1 -0
  87. package/dist/definitions-DxFNRQNK2.mjs +1 -0
  88. package/dist/definitions-Ibci7e_L.mjs +1 -0
  89. package/dist/definitions-OeLvmlQy.mjs +1 -0
  90. package/dist/definitions-RZYGD_Ey.mjs +1 -0
  91. package/dist/definitions-Tls8c0A0.mjs +1 -0
  92. package/dist/definitions-bybDvnG0.mjs +26 -0
  93. package/dist/definitions-l7TjdE6V.mjs +1 -0
  94. package/dist/encoding-ycOaz8Vr.mjs +2 -0
  95. package/dist/ensure-browser-core-DxWC-NTp.mjs +1 -0
  96. package/dist/evidence-graph-bridge-CV_UdYqj.mjs +1 -0
  97. package/dist/factory-CKr4fAE1.mjs +1 -0
  98. package/dist/flat-target-session-DvcQX7J5.mjs +1 -0
  99. package/dist/formatAddress-vLA_hOJt.mjs +1 -0
  100. package/dist/graphql-B2TiPEow.mjs +62 -0
  101. package/dist/handlers-0yKLRIfo.mjs +2 -0
  102. package/dist/handlers-8zN_vBIz.mjs +1 -0
  103. package/dist/handlers-B62K4FTc.mjs +1 -0
  104. package/dist/handlers-BpDlVVVU.mjs +1 -0
  105. package/dist/handlers-CMJK7m1c.mjs +31 -0
  106. package/dist/handlers-D2ZOul9p.mjs +54 -0
  107. package/dist/handlers-D5E40ssn.mjs +5 -0
  108. package/dist/handlers-DGbdQAgD.mjs +4 -0
  109. package/dist/handlers-DHO3rjsW.mjs +1 -0
  110. package/dist/handlers-FJ80VzUI.mjs +2 -0
  111. package/dist/handlers-VHWrxbM_.mjs +1 -0
  112. package/dist/handlers-l8QIKqBj.mjs +2 -0
  113. package/dist/handlers-mPFiNPe8.mjs +302 -0
  114. package/dist/{handlers-Dz9PYsCa.mjs → handlers-yo_xYzT8.mjs} +118 -904
  115. package/dist/handlers.impl-D9Hh8Bgl.mjs +1 -0
  116. package/dist/hooks-D4XLfgtV.mjs +600 -0
  117. package/dist/index.mjs +13 -5240
  118. package/dist/jadx-search-B_Yse0Zh.mjs +5 -0
  119. package/dist/logger-sBC6IdRT.mjs +1 -0
  120. package/dist/maintenance-BUpIukhg.mjs +1 -0
  121. package/dist/manifest-0Jpt_AQa.mjs +1 -0
  122. package/dist/manifest-B3fZbSWR.mjs +1 -0
  123. package/dist/manifest-B7NB2rh2.mjs +1 -0
  124. package/dist/manifest-BDi4nbH1.mjs +1 -0
  125. package/dist/manifest-BLDfkE7n.mjs +1 -0
  126. package/dist/manifest-BcXbB4gf.mjs +1 -0
  127. package/dist/manifest-Bdnc_vrc.mjs +1 -0
  128. package/dist/manifest-BuYKgCnp.mjs +1 -0
  129. package/dist/manifest-CBfNnGPV.mjs +1 -0
  130. package/dist/manifest-CPS1Xv69.mjs +1 -0
  131. package/dist/manifest-CQH9FhwI.mjs +1 -0
  132. package/dist/manifest-CRryuZF4.mjs +1 -0
  133. package/dist/manifest-CctIumog.mjs +1 -0
  134. package/dist/manifest-CvTe5ZGV2.mjs +1 -0
  135. package/dist/manifest-D-5GH0DV.mjs +1 -0
  136. package/dist/manifest-D3Ssf3IC.mjs +1 -0
  137. package/dist/manifest-D5ck3NvC.mjs +1 -0
  138. package/dist/manifest-D9jUUJAu.mjs +1 -0
  139. package/dist/manifest-DCx6w2XV.mjs +1 -0
  140. package/dist/manifest-DG19q-Ld.mjs +1 -0
  141. package/dist/manifest-DLMlD0Zc.mjs +1 -0
  142. package/dist/manifest-DYpn8w_h.mjs +1 -0
  143. package/dist/manifest-DYzWI8Xs.mjs +1 -0
  144. package/dist/manifest-D_obs5F4.mjs +1 -0
  145. package/dist/manifest-DujQqEQR.mjs +2 -0
  146. package/dist/manifest-DwL2ik8P.mjs +1 -0
  147. package/dist/manifest-ItF5P8A12.mjs +1 -0
  148. package/dist/manifest-KZphqIyX.mjs +1 -0
  149. package/dist/manifest-LG42zPLY2.mjs +1 -0
  150. package/dist/manifest-LLdI5m4T.mjs +1 -0
  151. package/dist/manifest-QYbQXJn0.mjs +1 -0
  152. package/dist/manifest-RcpX_MyZ.mjs +123 -0
  153. package/dist/manifest-YgVd8Sgz.mjs +1 -0
  154. package/dist/manifest-Zy7Odg5J.mjs +1 -0
  155. package/dist/manifest-ff1H7Pdp.mjs +1 -0
  156. package/dist/manifest-iuhF6pTL2.mjs +1 -0
  157. package/dist/manifest-nXHmtMSp2.mjs +1 -0
  158. package/dist/manifest-xWfu6iLo.mjs +1 -0
  159. package/dist/manifest-yC16OhL2.mjs +1 -0
  160. package/dist/manifest-ztWJoXy4.mjs +1 -0
  161. package/dist/matchesWildcardPattern-BAG6LvX5.mjs +1 -0
  162. package/dist/modules-BPBcSaM-.mjs +333 -0
  163. package/dist/mojo-ipc-BhwsdVUW.mjs +9 -0
  164. package/dist/native/scripts/linux/enum-windows.sh +12 -12
  165. package/dist/native/scripts/macos/enum-windows.applescript +22 -22
  166. package/dist/native-j8l473zn.mjs +961 -0
  167. package/dist/network-T0VRwNPd.mjs +7 -0
  168. package/dist/outputPaths-B4Ic4RZh.mjs +2 -0
  169. package/dist/parse-args-Bw413PlW.mjs +1 -0
  170. package/dist/platform-CzaQtISh.mjs +93 -0
  171. package/dist/playwright-cdp-fallback-DqFdx9-s.mjs +1 -0
  172. package/dist/process-CWhsCWrf.mjs +2 -0
  173. package/dist/proxy-DZFlDsG3.mjs +2 -0
  174. package/dist/registry-DH4sc1dt.mjs +1 -0
  175. package/dist/renderer-pid-9tJnZ_9N.mjs +1 -0
  176. package/dist/response-C7rKQst4.mjs +1 -0
  177. package/dist/search-defaults-lYBVn_3L.mjs +1 -0
  178. package/dist/server/plugin-api.d.mts +19 -36
  179. package/dist/server/plugin-api.mjs +1 -293
  180. package/dist/shared-state-board-BSjXLUV1.mjs +1 -0
  181. package/dist/sourcemap-Dh3Ai_ur.mjs +1 -0
  182. package/dist/ssrf-policy-CsIJGkpd.mjs +1 -0
  183. package/dist/streaming-BcJ0B6ao.mjs +1 -0
  184. package/dist/tool-builder-qif8M9-K.mjs +1 -0
  185. package/dist/transform-DOxzeWPB.mjs +103 -0
  186. package/dist/types-D9EiE5o9.mjs +1 -0
  187. package/dist/types-Fz69RzbZ.mjs +1 -0
  188. package/dist/wasm-CZ_HTfKR.mjs +174 -0
  189. package/dist/webcrack-C1iYG_EX.mjs +46 -0
  190. package/dist/workflow-BdwQmARn.mjs +101 -0
  191. package/package.json +55 -82
  192. package/src/native/scripts/linux/enum-windows.sh +12 -12
  193. package/src/native/scripts/macos/enum-windows.applescript +22 -22
  194. package/dist/AntiCheatDetector-CqGDXmfc.mjs +0 -350
  195. package/dist/CacheAdapters-jJFy20G-.mjs +0 -80
  196. package/dist/CodeInjector-BdjRfNx7.mjs +0 -150
  197. package/dist/ConsoleMonitor-DykL3IAw.mjs +0 -2269
  198. package/dist/DarwinAPI-ETyy0xyo.mjs +0 -363
  199. package/dist/DetailedDataManager-HT49OrvF.mjs +0 -217
  200. package/dist/EventBus-DFKvADm3.mjs +0 -141
  201. package/dist/EvidenceGraphBridge-318Oi0Lf.mjs +0 -153
  202. package/dist/ExtensionManager-BDMsY2Dz.mjs +0 -721
  203. package/dist/FingerprintManager-BN4UQWnX.mjs +0 -96
  204. package/dist/HardwareBreakpoint-Cc2AFq1Y.mjs +0 -239
  205. package/dist/HeapAnalyzer-DruMgsgj.mjs +0 -284
  206. package/dist/InstrumentationSession-DLH0vd-z.mjs +0 -244
  207. package/dist/MemoryController-CMtviNW_.mjs +0 -167
  208. package/dist/MemoryScanSession-ITgb_NMi.mjs +0 -278
  209. package/dist/MemoryScanner-CiL7Z3ey.mjs +0 -428
  210. package/dist/NativeMemoryManager.impl-D9Lkovvn.mjs +0 -485
  211. package/dist/NativeMemoryManager.utils-BBlAixF5.mjs +0 -165
  212. package/dist/PEAnalyzer-DMQ44gen.mjs +0 -385
  213. package/dist/PageController-BPJNqqBN.mjs +0 -431
  214. package/dist/PointerChainEngine-K7wN8Z-w.mjs +0 -325
  215. package/dist/PrerequisiteError-TuyZIs6n.mjs +0 -20
  216. package/dist/ProcessRegistry-zGg12QbE.mjs +0 -74
  217. package/dist/ResponseBuilder-CJXWmWNw.mjs +0 -143
  218. package/dist/ReverseEvidenceGraph-C02-gXOh.mjs +0 -269
  219. package/dist/ScriptManager-ZuWD-0Jg.mjs +0 -3003
  220. package/dist/Speedhack-D-z0umeT.mjs +0 -156
  221. package/dist/StealthVerifier-BWmPgQsv.mjs +0 -135
  222. package/dist/StructureAnalyzer-Cav5AVSL.mjs +0 -429
  223. package/dist/ToolCatalog-5OJdMiF0.mjs +0 -582
  224. package/dist/ToolError-jh9whhMd.mjs +0 -15
  225. package/dist/ToolProbe-DbCFGyrg.mjs +0 -45
  226. package/dist/ToolRegistry-B9krbTtI.mjs +0 -180
  227. package/dist/ToolRouter.policy-BGDAGyeH.mjs +0 -344
  228. package/dist/TraceRecorder-B41Z5XBj.mjs +0 -1286
  229. package/dist/VersionDetector-K3V4vGsw.mjs +0 -104
  230. package/dist/Win32API-C2kjj0ze.mjs +0 -346
  231. package/dist/Win32Debug-CKrGOTpo.mjs +0 -274
  232. package/dist/WorkflowEngine-DJ6M4opp.mjs +0 -569
  233. package/dist/analysis-BHeJW2Nb.mjs +0 -1234
  234. package/dist/artifactRetention-CPXkUJXp.mjs +0 -598
  235. package/dist/artifacts-DkfosXH3.mjs +0 -59
  236. package/dist/authorization-schema-DRqyJMSk.mjs +0 -31
  237. package/dist/betterSqlite3-DLSBZodi.mjs +0 -74
  238. package/dist/binary-instrument--V3MAhJ4.mjs +0 -971
  239. package/dist/bind-helpers-ClV34xdn.mjs +0 -42
  240. package/dist/boringssl-inspector-Bo_LOLaS.mjs +0 -180
  241. package/dist/browser-Dx3_S2cG.mjs +0 -4369
  242. package/dist/capabilities-CcHlvWgK.mjs +0 -33
  243. package/dist/chunk-CjcI7cDX.mjs +0 -15
  244. package/dist/concurrency-Drev_Vz9.mjs +0 -41
  245. package/dist/constants-CDZLOoVv.mjs +0 -534
  246. package/dist/coordination-DgItD9DL.mjs +0 -259
  247. package/dist/debugger-RS3RSAqs.mjs +0 -1288
  248. package/dist/definitions-BEoYofW5.mjs +0 -47
  249. package/dist/definitions-BRaefg3u.mjs +0 -365
  250. package/dist/definitions-BbkvZkiv.mjs +0 -96
  251. package/dist/definitions-BtWSHJ3o.mjs +0 -17
  252. package/dist/definitions-C1gCHO0i.mjs +0 -43
  253. package/dist/definitions-CDOg_b-l.mjs +0 -138
  254. package/dist/definitions-CVPD9hzZ.mjs +0 -54
  255. package/dist/definitions-Cea8Lgl7.mjs +0 -94
  256. package/dist/definitions-DAgIyjxM.mjs +0 -10
  257. package/dist/definitions-DJA27nsL.mjs +0 -66
  258. package/dist/definitions-DKPFU3LW.mjs +0 -25
  259. package/dist/definitions-DPRpZQ96.mjs +0 -47
  260. package/dist/definitions-DUE5gmdn.mjs +0 -18
  261. package/dist/definitions-DYVjOtxa.mjs +0 -26
  262. package/dist/definitions-DcYLVLCo.mjs +0 -37
  263. package/dist/definitions-Pp5LI2H4.mjs +0 -27
  264. package/dist/definitions-j9KdHVNR.mjs +0 -14
  265. package/dist/definitions-uzkjBwa7.mjs +0 -258
  266. package/dist/definitions-va-AnLuQ.mjs +0 -28
  267. package/dist/encoding-DJeqHmpd.mjs +0 -1079
  268. package/dist/evidence-graph-bridge-DcYizFk2.mjs +0 -136
  269. package/dist/factory-C90tBff6.mjs +0 -575
  270. package/dist/flat-target-session-Dgax2Cy3.mjs +0 -29
  271. package/dist/formatAddress-nnMvEohD.mjs +0 -17
  272. package/dist/graphql-CoHrhweh.mjs +0 -1197
  273. package/dist/handlers-4jmR0nMs.mjs +0 -898
  274. package/dist/handlers-BAHPxcch.mjs +0 -789
  275. package/dist/handlers-BOs9b907.mjs +0 -2600
  276. package/dist/handlers-BWXEy6ef.mjs +0 -917
  277. package/dist/handlers-Bndn6QvE.mjs +0 -111
  278. package/dist/handlers-BqC4bD4s.mjs +0 -681
  279. package/dist/handlers-BtYq60bM2.mjs +0 -276
  280. package/dist/handlers-BzgcB4iv.mjs +0 -799
  281. package/dist/handlers-CRyRWj2b.mjs +0 -859
  282. package/dist/handlers-CVv2H1uq.mjs +0 -592
  283. package/dist/handlers-Dl5a7JS4.mjs +0 -572
  284. package/dist/handlers-Dx2d7jt7.mjs +0 -2537
  285. package/dist/handlers-HujRKC3b.mjs +0 -661
  286. package/dist/handlers.impl-XWXkQfyi.mjs +0 -807
  287. package/dist/hooks-B1B8NRHL.mjs +0 -898
  288. package/dist/logger-Dh_xb7_2.mjs +0 -93
  289. package/dist/maintenance-PRMkLVRW.mjs +0 -835
  290. package/dist/manifest-67Bok-Si.mjs +0 -58
  291. package/dist/manifest-6lNTMZAB2.mjs +0 -87
  292. package/dist/manifest-B2duEHiH.mjs +0 -90
  293. package/dist/manifest-B6EY9Vm8.mjs +0 -57
  294. package/dist/manifest-B6nKSbyY.mjs +0 -95
  295. package/dist/manifest-BL8AQNPF.mjs +0 -106
  296. package/dist/manifest-BSZvJJmV.mjs +0 -47
  297. package/dist/manifest-BU7qzUyX.mjs +0 -418
  298. package/dist/manifest-Bl62e8WK.mjs +0 -49
  299. package/dist/manifest-Bo5cXjdt.mjs +0 -82
  300. package/dist/manifest-BpS4gtUK.mjs +0 -1347
  301. package/dist/manifest-Bv65_e2W.mjs +0 -101
  302. package/dist/manifest-BytNIF4Z.mjs +0 -117
  303. package/dist/manifest-C-xtsjS3.mjs +0 -81
  304. package/dist/manifest-CDYl7OhA.mjs +0 -66
  305. package/dist/manifest-CRZ3xmkD.mjs +0 -61
  306. package/dist/manifest-CoW6u4Tp.mjs +0 -132
  307. package/dist/manifest-Cq5zN_8A.mjs +0 -50
  308. package/dist/manifest-D7YZM_2e.mjs +0 -194
  309. package/dist/manifest-DE_VrAeQ.mjs +0 -314
  310. package/dist/manifest-DGsXSCpT.mjs +0 -39
  311. package/dist/manifest-DJ2vfEuW.mjs +0 -156
  312. package/dist/manifest-DPXDYhEu.mjs +0 -80
  313. package/dist/manifest-Dd4fQb0a.mjs +0 -322
  314. package/dist/manifest-Deq6opGg.mjs +0 -223
  315. package/dist/manifest-DfJTafJK.mjs +0 -37
  316. package/dist/manifest-DgOdgN_j.mjs +0 -50
  317. package/dist/manifest-DlbMW4v4.mjs +0 -47
  318. package/dist/manifest-DmVfbH0w.mjs +0 -374
  319. package/dist/manifest-Dog6Ddjr.mjs +0 -109
  320. package/dist/manifest-DvgU5FWb.mjs +0 -58
  321. package/dist/manifest-HsfDBs7j.mjs +0 -50
  322. package/dist/manifest-I8oQHvCG.mjs +0 -186
  323. package/dist/manifest-NvH_a-av.mjs +0 -786
  324. package/dist/manifest-cEJU1v0Z.mjs +0 -129
  325. package/dist/manifest-wOl5XLB12.mjs +0 -112
  326. package/dist/modules-tZozf0LQ.mjs +0 -10635
  327. package/dist/mojo-ipc-DXNEXEqb.mjs +0 -640
  328. package/dist/network-CPVvwvFg.mjs +0 -3852
  329. package/dist/outputPaths-um7lCRY3.mjs +0 -1141
  330. package/dist/parse-args-B4cY5Vx5.mjs +0 -39
  331. package/dist/platform-CYeFoTWp.mjs +0 -2161
  332. package/dist/process-BTbgcVc6.mjs +0 -1306
  333. package/dist/proxy-r8YN6nP1.mjs +0 -192
  334. package/dist/registry-Bl8ZQW61.mjs +0 -34
  335. package/dist/response-CWhh2aLo.mjs +0 -34
  336. package/dist/shared-state-board-BoZnSoj-.mjs +0 -586
  337. package/dist/sourcemap-BIDHUVXy.mjs +0 -934
  338. package/dist/ssrf-policy-Dsqd-DTX.mjs +0 -166
  339. package/dist/streaming-Dal6utPp.mjs +0 -725
  340. package/dist/tool-builder-BHJp32mV.mjs +0 -186
  341. package/dist/transform-DRVgGG90.mjs +0 -1011
  342. package/dist/types-Bx92KJfT.mjs +0 -4
  343. package/dist/types-DDBWs9UP.mjs +0 -37
  344. package/dist/wasm-BYx5UOeG.mjs +0 -1044
  345. package/dist/webcrack-Be0_FccV.mjs +0 -747
  346. package/dist/workflow-BpuKEtvn.mjs +0 -725
@@ -1,485 +0,0 @@
1
- import { t as logger } from "./logger-Dh_xb7_2.mjs";
2
- import { v as isKoffiAvailable, y as isWindows } from "./Win32API-C2kjj0ze.mjs";
3
- import { n as cpuLimit } from "./concurrency-Drev_Vz9.mjs";
4
- import { t as createPlatformProvider } from "./factory-C90tBff6.mjs";
5
- import { i as parsePattern, t as findPatternInBuffer } from "./NativeMemoryManager.utils-BBlAixF5.mjs";
6
- import { exec } from "node:child_process";
7
- import { promisify } from "node:util";
8
- //#region src/native/NativeMemoryManager.availability.ts
9
- async function checkNativeMemoryAvailability(execAsync) {
10
- if (process.platform === "darwin") return checkDarwinAvailability(execAsync);
11
- if (!isWindows()) return {
12
- available: false,
13
- reason: `Native memory operations require Windows or macOS. Current platform: ${process.platform}`
14
- };
15
- if (!isKoffiAvailable()) return {
16
- available: false,
17
- reason: "koffi library not available. Install with: pnpm add koffi"
18
- };
19
- try {
20
- const { stdout } = await execAsync("powershell.exe -NoProfile -Command \"([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)\"", { timeout: 5e3 });
21
- if (stdout.trim().toLowerCase() !== "true") return {
22
- available: false,
23
- reason: "Native memory operations require Administrator privileges. Run as Administrator."
24
- };
25
- } catch {
26
- return {
27
- available: false,
28
- reason: "Failed to check Administrator privileges."
29
- };
30
- }
31
- return { available: true };
32
- }
33
- async function checkDarwinAvailability(execAsync) {
34
- try {
35
- (await import("koffi")).default.load("/usr/lib/libSystem.B.dylib").unload();
36
- } catch {
37
- return {
38
- available: false,
39
- reason: "koffi library cannot load libSystem.B.dylib. Install koffi with: pnpm add koffi"
40
- };
41
- }
42
- let sipInfo = "";
43
- try {
44
- const { stdout } = await execAsync("csrutil status 2>&1 || true", { timeout: 5e3 });
45
- sipInfo = stdout.trim();
46
- } catch {}
47
- if (process.getuid && process.getuid() !== 0) return {
48
- available: false,
49
- reason: `macOS memory operations require root privileges for task_for_pid. Run with: sudo node <your-script>.${sipInfo ? ` SIP status: ${sipInfo}` : ""}`
50
- };
51
- return { available: true };
52
- }
53
- //#endregion
54
- //#region src/native/NativeMemoryManager.impl.ts
55
- /**
56
- * Native Memory Manager — Cross-platform memory operations.
57
- *
58
- * Uses PlatformMemoryAPI for read/write/scan/regions/modules.
59
- * Win32-only injection and debug methods remain guarded by platform checks.
60
- *
61
- * Performance improvement: 10-100x faster than PowerShell-based approach
62
- * - No process spawning overhead
63
- * - Direct memory access via FFI
64
- * - Lower latency and higher throughput
65
- *
66
- * @module NativeMemoryManager
67
- */
68
- const execAsync = promisify(exec);
69
- const SCAN_CHUNK_SIZE = 16 * 1024 * 1024;
70
- function scanRegionInChunks(region, patternBytes, mask, readChunk, chunkSize = SCAN_CHUNK_SIZE) {
71
- if (patternBytes.length === 0 || region.regionSize < patternBytes.length || chunkSize <= 0) return [];
72
- const overlap = Math.max(patternBytes.length - 1, 0);
73
- let carryOver = Buffer.alloc(0);
74
- const matches = [];
75
- for (let chunkOffset = 0; chunkOffset < region.regionSize; chunkOffset += chunkSize) {
76
- const readSize = Math.min(chunkSize, region.regionSize - chunkOffset);
77
- const chunk = readChunk(region.baseAddress + BigInt(chunkOffset), readSize);
78
- const scanBuffer = carryOver.length > 0 ? Buffer.concat([carryOver, chunk]) : chunk;
79
- const chunkMatches = findPatternInBuffer(scanBuffer, patternBytes, mask);
80
- for (const matchOffset of chunkMatches) {
81
- const regionOffset = chunkOffset + matchOffset - carryOver.length;
82
- matches.push(region.baseAddress + BigInt(regionOffset));
83
- }
84
- if (overlap === 0 || chunkOffset + readSize >= region.regionSize) {
85
- carryOver = Buffer.alloc(0);
86
- continue;
87
- }
88
- const carrySize = Math.min(overlap, scanBuffer.length);
89
- carryOver = scanBuffer.subarray(scanBuffer.length - carrySize);
90
- }
91
- return matches;
92
- }
93
- /**
94
- * High-performance cross-platform memory manager.
95
- * Uses PlatformMemoryAPI for read/write/scan/regions/modules.
96
- * Win32-only methods (injection, debug) are guarded by platform checks.
97
- */
98
- var NativeMemoryManager = class {
99
- providerCache = null;
100
- /** Lazily create the platform memory provider */
101
- get provider() {
102
- if (!this.providerCache) this.providerCache = createPlatformProvider();
103
- return this.providerCache;
104
- }
105
- set provider(value) {
106
- this.providerCache = value;
107
- }
108
- async checkAvailability() {
109
- return checkNativeMemoryAvailability(execAsync);
110
- }
111
- async readMemory(pid, address, size) {
112
- try {
113
- const addrNum = BigInt(address.startsWith("0x") ? address : `0x${address}`);
114
- const handle = this.provider.openProcess(pid, false);
115
- try {
116
- const { data: buffer } = this.provider.readMemory(handle, addrNum, size);
117
- return {
118
- success: true,
119
- data: buffer.toString("hex").toUpperCase().match(/.{2}/g)?.join(" ") || ""
120
- };
121
- } finally {
122
- this.provider.closeProcess(handle);
123
- }
124
- } catch (error) {
125
- logger.error("Native memory read failed", {
126
- pid,
127
- address,
128
- size,
129
- error: error instanceof Error ? error.message : String(error)
130
- });
131
- return {
132
- success: false,
133
- error: error instanceof Error ? error.message : String(error)
134
- };
135
- }
136
- }
137
- async writeMemory(pid, address, data, encoding = "hex") {
138
- try {
139
- const addrNum = BigInt(address.startsWith("0x") ? address : `0x${address}`);
140
- let buffer;
141
- if (encoding === "base64") buffer = Buffer.from(data, "base64");
142
- else buffer = Buffer.from(data.replace(/\s/g, ""), "hex");
143
- const handle = this.provider.openProcess(pid, true);
144
- try {
145
- const { bytesWritten } = this.provider.writeMemory(handle, addrNum, buffer);
146
- return {
147
- success: true,
148
- bytesWritten
149
- };
150
- } finally {
151
- this.provider.closeProcess(handle);
152
- }
153
- } catch (error) {
154
- logger.error("Native memory write failed", {
155
- pid,
156
- address,
157
- encoding,
158
- dataLength: data.length,
159
- error: error instanceof Error ? error.message : String(error)
160
- });
161
- return {
162
- success: false,
163
- error: error instanceof Error ? error.message : String(error)
164
- };
165
- }
166
- }
167
- async enumerateRegions(pid) {
168
- try {
169
- const handle = this.provider.openProcess(pid, false);
170
- const regions = [];
171
- try {
172
- let address = 0n;
173
- const maxAddress = BigInt("0x7FFFFFFF0000");
174
- while (address < maxAddress) {
175
- const regionInfo = this.provider.queryRegion(handle, address);
176
- if (!regionInfo) break;
177
- regions.push(regionInfoToMemoryRegion(regionInfo));
178
- address = regionInfo.baseAddress + BigInt(regionInfo.size);
179
- }
180
- return {
181
- success: true,
182
- regions
183
- };
184
- } finally {
185
- this.provider.closeProcess(handle);
186
- }
187
- } catch (error) {
188
- logger.error("Native region enumeration failed", {
189
- pid,
190
- error: error instanceof Error ? error.message : String(error)
191
- });
192
- return {
193
- success: false,
194
- error: error instanceof Error ? error.message : String(error)
195
- };
196
- }
197
- }
198
- async checkMemoryProtection(pid, address) {
199
- try {
200
- const addrNum = BigInt(address.startsWith("0x") ? address : `0x${address}`);
201
- const handle = this.provider.openProcess(pid, false);
202
- try {
203
- const regionInfo = this.provider.queryRegion(handle, addrNum);
204
- if (!regionInfo) return {
205
- success: false,
206
- error: "Failed to query memory region"
207
- };
208
- return {
209
- success: true,
210
- protection: protectionToString(regionInfo.protection),
211
- isWritable: regionInfo.isWritable,
212
- isReadable: regionInfo.isReadable,
213
- isExecutable: regionInfo.isExecutable,
214
- regionStart: `0x${regionInfo.baseAddress.toString(16).toUpperCase()}`,
215
- regionSize: regionInfo.size
216
- };
217
- } finally {
218
- this.provider.closeProcess(handle);
219
- }
220
- } catch (error) {
221
- logger.error("Native protection check failed", {
222
- pid,
223
- address,
224
- error: error instanceof Error ? error.message : String(error)
225
- });
226
- return {
227
- success: false,
228
- error: error instanceof Error ? error.message : String(error)
229
- };
230
- }
231
- }
232
- async scanMemory(pid, pattern, patternType = "hex") {
233
- try {
234
- const { patternBytes, mask } = parsePattern(pattern, patternType);
235
- if (patternBytes.length === 0) return {
236
- success: false,
237
- addresses: [],
238
- error: "Invalid pattern"
239
- };
240
- const maxResults = 1e4;
241
- const readableRegions = [];
242
- const handle = this.provider.openProcess(pid, false);
243
- let regionMatches = [];
244
- try {
245
- let address = 0n;
246
- const maxAddress = BigInt("0x7FFFFFFF0000");
247
- while (address < maxAddress) {
248
- const regionInfo = this.provider.queryRegion(handle, address);
249
- if (!regionInfo) break;
250
- if (regionInfo.isReadable && regionInfo.size > 0 && regionInfo.size <= Number.MAX_SAFE_INTEGER) readableRegions.push({
251
- baseAddress: regionInfo.baseAddress,
252
- regionSize: regionInfo.size
253
- });
254
- address = regionInfo.baseAddress + BigInt(regionInfo.size);
255
- }
256
- const providerRef = this.provider;
257
- regionMatches = await Promise.all(readableRegions.map((region) => cpuLimit(async () => {
258
- try {
259
- return scanRegionInChunks(region, patternBytes, mask, (addr, size) => providerRef.readMemory(handle, addr, size).data);
260
- } catch {
261
- return [];
262
- }
263
- })));
264
- } finally {
265
- this.provider.closeProcess(handle);
266
- }
267
- const addresses = [];
268
- for (const matches of regionMatches) {
269
- for (const foundAddr of matches) {
270
- addresses.push(`0x${foundAddr.toString(16).toUpperCase()}`);
271
- if (addresses.length >= maxResults) break;
272
- }
273
- if (addresses.length >= maxResults) break;
274
- }
275
- return {
276
- success: true,
277
- addresses,
278
- stats: {
279
- patternLength: patternBytes.length,
280
- resultsFound: addresses.length
281
- }
282
- };
283
- } catch (error) {
284
- logger.error("Native memory scan failed", {
285
- pid,
286
- patternType,
287
- patternLength: pattern.length,
288
- error: error instanceof Error ? error.message : String(error)
289
- });
290
- return {
291
- success: false,
292
- addresses: [],
293
- error: error instanceof Error ? error.message : String(error)
294
- };
295
- }
296
- }
297
- async enumerateModules(pid) {
298
- try {
299
- const handle = this.provider.openProcess(pid, false);
300
- try {
301
- return {
302
- success: true,
303
- modules: this.provider.enumerateModules(handle).map((m) => ({
304
- name: m.name,
305
- baseAddress: `0x${m.baseAddress.toString(16).toUpperCase()}`,
306
- size: m.size
307
- }))
308
- };
309
- } finally {
310
- this.provider.closeProcess(handle);
311
- }
312
- } catch (error) {
313
- logger.error("Native module enumeration failed", {
314
- pid,
315
- error: error instanceof Error ? error.message : String(error)
316
- });
317
- return {
318
- success: false,
319
- error: error instanceof Error ? error.message : String(error)
320
- };
321
- }
322
- }
323
- /** Win32 only — uses CreateRemoteThread + LoadLibraryA */
324
- async injectDll(pid, dllPath) {
325
- if (process.platform !== "win32") return {
326
- success: false,
327
- error: "DLL injection is only supported on Windows"
328
- };
329
- try {
330
- const { openProcessForMemory, CloseHandle, WriteProcessMemory, VirtualAllocEx, CreateRemoteThread, GetModuleHandle, GetProcAddress, PAGE, MEM } = await import("./Win32API-C2kjj0ze.mjs").then((n) => n.g);
331
- const handle = openProcessForMemory(pid, true);
332
- try {
333
- const loadLibraryAddr = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
334
- if (!loadLibraryAddr) return {
335
- success: false,
336
- error: "Failed to get LoadLibraryA address"
337
- };
338
- const pathBuffer = Buffer.from(dllPath + "\0", "ascii");
339
- const remoteMem = VirtualAllocEx(handle, 0n, pathBuffer.length, MEM.COMMIT | MEM.RESERVE, PAGE.READWRITE);
340
- if (!remoteMem) return {
341
- success: false,
342
- error: "Failed to allocate remote memory"
343
- };
344
- WriteProcessMemory(handle, remoteMem, pathBuffer);
345
- const { handle: threadHandle, threadId } = CreateRemoteThread(handle, loadLibraryAddr, remoteMem);
346
- if (!threadHandle) return {
347
- success: false,
348
- error: "Failed to create remote thread"
349
- };
350
- CloseHandle(threadHandle);
351
- return {
352
- success: true,
353
- remoteThreadId: threadId
354
- };
355
- } finally {
356
- CloseHandle(handle);
357
- }
358
- } catch (error) {
359
- logger.error("Native DLL injection failed", {
360
- pid,
361
- dllPath,
362
- error: error instanceof Error ? error.message : String(error)
363
- });
364
- return {
365
- success: false,
366
- error: error instanceof Error ? error.message : String(error)
367
- };
368
- }
369
- }
370
- /** Win32 only — uses VirtualAllocEx + CreateRemoteThread */
371
- async injectShellcode(pid, shellcode, encoding = "hex") {
372
- if (process.platform !== "win32") return {
373
- success: false,
374
- error: "Shellcode injection is only supported on Windows"
375
- };
376
- try {
377
- let buffer;
378
- if (encoding === "base64") buffer = Buffer.from(shellcode, "base64");
379
- else buffer = Buffer.from(shellcode.replace(/\s/g, ""), "hex");
380
- const { openProcessForMemory, CloseHandle, WriteProcessMemory, VirtualAllocEx, VirtualProtectEx, CreateRemoteThread, PAGE, MEM } = await import("./Win32API-C2kjj0ze.mjs").then((n) => n.g);
381
- const handle = openProcessForMemory(pid, true);
382
- try {
383
- const remoteMem = VirtualAllocEx(handle, 0n, buffer.length, MEM.COMMIT | MEM.RESERVE, PAGE.READWRITE);
384
- if (!remoteMem) return {
385
- success: false,
386
- error: "Failed to allocate remote memory"
387
- };
388
- WriteProcessMemory(handle, remoteMem, buffer);
389
- const { success: protectSuccess } = VirtualProtectEx(handle, remoteMem, buffer.length, PAGE.EXECUTE_READWRITE);
390
- if (!protectSuccess) return {
391
- success: false,
392
- error: "Failed to change memory protection"
393
- };
394
- const { handle: threadHandle, threadId } = CreateRemoteThread(handle, remoteMem, 0n);
395
- if (!threadHandle) return {
396
- success: false,
397
- error: "Failed to create remote thread"
398
- };
399
- CloseHandle(threadHandle);
400
- return {
401
- success: true,
402
- remoteThreadId: threadId
403
- };
404
- } finally {
405
- CloseHandle(handle);
406
- }
407
- } catch (error) {
408
- logger.error("Native shellcode injection failed", {
409
- pid,
410
- encoding,
411
- shellcodeLength: shellcode.length,
412
- error: error instanceof Error ? error.message : String(error)
413
- });
414
- return {
415
- success: false,
416
- error: error instanceof Error ? error.message : String(error)
417
- };
418
- }
419
- }
420
- /** Win32 only — uses NtQueryInformationProcess */
421
- async checkDebugPort(pid) {
422
- if (process.platform !== "win32") return {
423
- success: false,
424
- error: "Debug port check is only supported on Windows"
425
- };
426
- try {
427
- const { openProcessForMemory, CloseHandle, NtQueryInformationProcess } = await import("./Win32API-C2kjj0ze.mjs").then((n) => n.g);
428
- const handle = openProcessForMemory(pid, false);
429
- try {
430
- const { status, debugPort } = NtQueryInformationProcess(handle, 7);
431
- if (status !== 0) return {
432
- success: false,
433
- error: `NtQueryInformationProcess failed with status 0x${status.toString(16)}`
434
- };
435
- return {
436
- success: true,
437
- isDebugged: debugPort !== 0
438
- };
439
- } finally {
440
- CloseHandle(handle);
441
- }
442
- } catch (error) {
443
- logger.error("Native debug port check failed", {
444
- pid,
445
- error: error instanceof Error ? error.message : String(error)
446
- });
447
- return {
448
- success: false,
449
- error: error instanceof Error ? error.message : String(error)
450
- };
451
- }
452
- }
453
- };
454
- /** Convert platform-agnostic MemoryRegionInfo to legacy MemoryRegion format */
455
- function regionInfoToMemoryRegion(info) {
456
- return {
457
- baseAddress: `0x${info.baseAddress.toString(16).toUpperCase()}`,
458
- size: info.size,
459
- state: info.state.toUpperCase(),
460
- protection: protectionToString(info.protection),
461
- isReadable: info.isReadable,
462
- isWritable: info.isWritable,
463
- isExecutable: info.isExecutable,
464
- type: info.type.toUpperCase()
465
- };
466
- }
467
- /** Convert MemoryProtection flags to human-readable string */
468
- function protectionToString(prot) {
469
- if (prot === 0) return "NOACCESS";
470
- const parts = [];
471
- const hasRead = (prot & 1) !== 0;
472
- const hasWrite = (prot & 2) !== 0;
473
- const hasExec = (prot & 4) !== 0;
474
- const hasGuard = (prot & 8) !== 0;
475
- if (hasRead && hasWrite && hasExec) parts.push("RWX");
476
- else if (hasRead && hasExec) parts.push("RX");
477
- else if (hasRead && hasWrite) parts.push("RW");
478
- else if (hasRead) parts.push("R");
479
- else if (hasExec) parts.push("X");
480
- if (hasGuard) parts.push("GUARD");
481
- return parts.join(" ") || "UNKNOWN";
482
- }
483
- const nativeMemoryManager = new NativeMemoryManager();
484
- //#endregion
485
- export { nativeMemoryManager as t };
@@ -1,165 +0,0 @@
1
- import { u as PAGE, v as isKoffiAvailable$1 } from "./Win32API-C2kjj0ze.mjs";
2
- //#region src/native/NativeMemoryManager.utils.ts
3
- function isKoffiAvailable() {
4
- return isKoffiAvailable$1();
5
- }
6
- function parsePattern(pattern, patternType) {
7
- const patternBytes = [];
8
- const mask = [];
9
- switch (patternType) {
10
- case "hex": {
11
- const parts = pattern.trim().split(/\s+/);
12
- for (const part of parts) if (part === "??" || part === "**" || part === "?") {
13
- patternBytes.push(0);
14
- mask.push(0);
15
- } else {
16
- const byte = parseInt(part, 16);
17
- if (!isNaN(byte)) {
18
- patternBytes.push(byte);
19
- mask.push(1);
20
- }
21
- }
22
- break;
23
- }
24
- case "int32": {
25
- const int32Val = parseInt(pattern);
26
- if (!isNaN(int32Val)) {
27
- const buf = Buffer.allocUnsafe(4);
28
- buf.writeInt32LE(int32Val, 0);
29
- patternBytes.push(...buf);
30
- mask.push(1, 1, 1, 1);
31
- }
32
- break;
33
- }
34
- case "int64": {
35
- const int64Val = BigInt(pattern);
36
- const buf64 = Buffer.allocUnsafe(8);
37
- buf64.writeBigInt64LE(int64Val, 0);
38
- patternBytes.push(...buf64);
39
- mask.push(1, 1, 1, 1, 1, 1, 1, 1);
40
- break;
41
- }
42
- case "float": {
43
- const floatVal = parseFloat(pattern);
44
- if (!isNaN(floatVal)) {
45
- const bufFloat = Buffer.allocUnsafe(4);
46
- bufFloat.writeFloatLE(floatVal, 0);
47
- patternBytes.push(...bufFloat);
48
- mask.push(1, 1, 1, 1);
49
- }
50
- break;
51
- }
52
- case "double": {
53
- const doubleVal = parseFloat(pattern);
54
- if (!isNaN(doubleVal)) {
55
- const bufDouble = Buffer.allocUnsafe(8);
56
- bufDouble.writeDoubleLE(doubleVal, 0);
57
- patternBytes.push(...bufDouble);
58
- mask.push(1, 1, 1, 1, 1, 1, 1, 1);
59
- }
60
- break;
61
- }
62
- case "string": {
63
- const strBuf = Buffer.from(pattern, "utf8");
64
- patternBytes.push(...strBuf);
65
- mask.push(...strBuf.map(() => 1));
66
- break;
67
- }
68
- case "byte": {
69
- const byteVal = parseInt(pattern) & 255;
70
- patternBytes.push(byteVal);
71
- mask.push(1);
72
- break;
73
- }
74
- case "int8": {
75
- const int8Val = parseInt(pattern);
76
- const buf8 = Buffer.allocUnsafe(1);
77
- buf8.writeInt8(int8Val, 0);
78
- patternBytes.push(...buf8);
79
- mask.push(1);
80
- break;
81
- }
82
- case "int16": {
83
- const int16Val = parseInt(pattern);
84
- const buf16s = Buffer.allocUnsafe(2);
85
- buf16s.writeInt16LE(int16Val, 0);
86
- patternBytes.push(...buf16s);
87
- mask.push(1, 1);
88
- break;
89
- }
90
- case "uint16": {
91
- const uint16Val = parseInt(pattern);
92
- const buf16u = Buffer.allocUnsafe(2);
93
- buf16u.writeUInt16LE(uint16Val, 0);
94
- patternBytes.push(...buf16u);
95
- mask.push(1, 1);
96
- break;
97
- }
98
- case "uint32": {
99
- const uint32Val = parseInt(pattern) >>> 0;
100
- const buf32u = Buffer.allocUnsafe(4);
101
- buf32u.writeUInt32LE(uint32Val, 0);
102
- patternBytes.push(...buf32u);
103
- mask.push(1, 1, 1, 1);
104
- break;
105
- }
106
- case "uint64":
107
- case "pointer": {
108
- const uint64Val = BigInt(pattern);
109
- const buf64u = Buffer.allocUnsafe(8);
110
- buf64u.writeBigUInt64LE(uint64Val, 0);
111
- patternBytes.push(...buf64u);
112
- mask.push(1, 1, 1, 1, 1, 1, 1, 1);
113
- break;
114
- }
115
- }
116
- return {
117
- patternBytes,
118
- mask
119
- };
120
- }
121
- function findExactPatternBMH(buffer, pattern) {
122
- const matches = [];
123
- const patternLength = pattern.length;
124
- if (patternLength === 0 || buffer.length < patternLength) return matches;
125
- const lastIndex = patternLength - 1;
126
- const skipTable = new Uint32Array(256);
127
- skipTable.fill(patternLength);
128
- for (let i = 0; i < lastIndex; i++) {
129
- const patternByte = pattern[i];
130
- if (patternByte !== void 0) skipTable[patternByte] = lastIndex - i;
131
- }
132
- let offset = 0;
133
- while (offset <= buffer.length - patternLength) {
134
- let patternIndex = lastIndex;
135
- while (patternIndex >= 0 && buffer[offset + patternIndex] === pattern[patternIndex]) patternIndex--;
136
- if (patternIndex < 0) {
137
- matches.push(offset);
138
- offset += 1;
139
- continue;
140
- }
141
- const skipByte = buffer[offset + lastIndex];
142
- if (skipByte === void 0) break;
143
- offset += skipTable[skipByte] ?? patternLength;
144
- }
145
- return matches;
146
- }
147
- function findPatternInBuffer(buffer, pattern, mask) {
148
- if (pattern.length === 0) return [];
149
- if (mask.every((value) => value === 1)) return findExactPatternBMH(buffer, pattern);
150
- const matches = [];
151
- for (let i = 0; i <= buffer.length - pattern.length; i++) {
152
- let found = true;
153
- for (let j = 0; j < pattern.length; j++) if (mask[j] === 1 && buffer[i + j] !== pattern[j]) {
154
- found = false;
155
- break;
156
- }
157
- if (found) matches.push(i);
158
- }
159
- return matches;
160
- }
161
- function isExecutable(protect) {
162
- return (protect & PAGE.EXECUTE) !== 0 || (protect & PAGE.EXECUTE_READ) !== 0 || (protect & PAGE.EXECUTE_READWRITE) !== 0;
163
- }
164
- //#endregion
165
- export { parsePattern as i, isExecutable as n, isKoffiAvailable as r, findPatternInBuffer as t };