@jshookmcp/jshook 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -50
- package/README.zh.md +25 -48
- package/dist/AntiCheatDetector-CGVGNfy5.mjs +1 -0
- package/dist/CacheAdapters-CdAxBmVW.mjs +1 -0
- package/dist/CodeInjector-BlgyqTOk.mjs +1 -0
- package/dist/ConsoleMonitor-Dkqc0HNi.mjs +490 -0
- package/dist/DOMInspector-BYY_EJ0C.mjs +95 -0
- package/dist/DarwinAPI-DC4HGGLl.mjs +1 -0
- package/dist/DetailedDataManager-BniBJlVv.mjs +1 -0
- package/dist/EventBus-DgciURGg.mjs +1 -0
- package/dist/EvidenceGraphBridge-BIfgB7HP.mjs +1 -0
- package/dist/ExtensionManager-erMpqcLk.mjs +1 -0
- package/dist/FingerprintManager-N7BZqjxP.mjs +1 -0
- package/dist/HardwareBreakpoint-OcJqNFVc.mjs +1 -0
- package/dist/HeapAnalyzer-CqAxZzeS.mjs +1 -0
- package/dist/{HookGeneratorBuilders.core.generators.storage-CTbB4Lcx.mjs → HookGeneratorBuilders.core.generators.storage-Bf1fbrNK.mjs} +66 -101
- package/dist/InstrumentationSession-DxXs0sCp.mjs +1 -0
- package/dist/MCPServer.search.handlers.domain-DVbWL1bT.mjs +1 -0
- package/dist/MemoryController-BaqstM5w.mjs +2 -0
- package/dist/MemoryScanSession-CaxAjZJf.mjs +1 -0
- package/dist/MemoryScanner-BLYnMJy6.mjs +1 -0
- package/dist/NativeMemoryManager.impl-CI554XbY.mjs +1 -0
- package/dist/NativeMemoryManager.utils-DM4NC3FE.mjs +1 -0
- package/dist/PEAnalyzer-DJyaJTQJ.mjs +1 -0
- package/dist/PageController-D9jVkH0i.mjs +1 -0
- package/dist/PointerChainEngine-5nF9eNlu.mjs +1 -0
- package/dist/PrerequisiteError-Bl3dK8XA.mjs +1 -0
- package/dist/ProcessRegistry-Hf12LlR9.mjs +1 -0
- package/dist/ResponseBuilder-B2lu4KEl.mjs +1 -0
- package/dist/ReverseEvidenceGraph-B931HeoW.mjs +2 -0
- package/dist/ScriptManager-fgqiALgj.mjs +7 -0
- package/dist/Speedhack-l6s8L2Qw.mjs +1 -0
- package/dist/StealthVerifier-Dhbj4B4P.mjs +1 -0
- package/dist/StructureAnalyzer-A-WamfYE.mjs +2 -0
- package/dist/ToolCatalog-D_IKl1Hu.mjs +1 -0
- package/dist/ToolError-DWU_z7gp.mjs +1 -0
- package/dist/ToolProbe-xsfALmN3.mjs +1 -0
- package/dist/ToolRegistry-B0Zs-phN.mjs +1 -0
- package/dist/ToolRouter.policy-CFHoN_Lw.mjs +4 -0
- package/dist/TraceRecorder-Dd8jLXpi.mjs +272 -0
- package/dist/VersionDetector-DMoUWyNm.mjs +9 -0
- package/dist/Win32API-Bhi5xFBe.mjs +1 -0
- package/dist/Win32Debug-CQteFL4F.mjs +1 -0
- package/dist/WorkflowEngine-CxEp2WXH.mjs +1 -0
- package/dist/analysis-BuR-NgX8.mjs +5 -0
- package/dist/{antidebug-BRKeyt27.mjs → antidebug-BOTZH6-0.mjs} +8 -259
- package/dist/artifactRetention-NBdncOEW.mjs +1 -0
- package/dist/artifacts-B5xQuEa_.mjs +1 -0
- package/dist/authorization-schema-B40obG1A.mjs +1 -0
- package/dist/betterSqlite3-CGaxz4AX.mjs +1 -0
- package/dist/binary-instrument-Cf9qqLlM.mjs +7 -0
- package/dist/bind-helpers-BlAOQrFQ.mjs +1 -0
- package/dist/boringssl-inspector-BST5vtKx.mjs +2 -0
- package/dist/browser-C4Le3xqA.mjs +11 -0
- package/dist/capabilities-DbYCv-HF.mjs +1 -0
- package/dist/chunk-C_pMuVsO.mjs +1 -0
- package/dist/collector-CKO8RPK8.mjs +1 -0
- package/dist/concurrency-CcK46d0h.mjs +1 -0
- package/dist/constants-Cp6hBrrx.mjs +1 -0
- package/dist/coordination-BbijHEHH.mjs +1 -0
- package/dist/debugger-CRJq_krh.mjs +1 -0
- package/dist/definitions-BGobEDQa.mjs +1 -0
- package/dist/definitions-BGwNSkVm.mjs +1 -0
- package/dist/definitions-BbxOUiP-.mjs +1 -0
- package/dist/definitions-CCP9gphV.mjs +1 -0
- package/dist/definitions-CIO9O-Sw.mjs +1 -0
- package/dist/definitions-CYFbewnd.mjs +1 -0
- package/dist/definitions-CdWEuIkI.mjs +1 -0
- package/dist/definitions-CoQFbggH.mjs +1 -0
- package/dist/definitions-CuJRsJ6N.mjs +1 -0
- package/dist/definitions-DI9YXsJk.mjs +1 -0
- package/dist/definitions-DJklW2sS.mjs +1 -0
- package/dist/definitions-DZ8uKusP.mjs +1 -0
- package/dist/definitions-Dds_zrWx.mjs +1 -0
- package/dist/definitions-Dgrg7f3D.mjs +1 -0
- package/dist/definitions-DtE0XLrT.mjs +1 -0
- package/dist/definitions-LaYTuwQd.mjs +26 -0
- package/dist/definitions-NoVp_9Pm.mjs +1 -0
- package/dist/definitions-OvGsfxdt.mjs +1 -0
- package/dist/definitions-jXPaVy4P.mjs +1 -0
- package/dist/encoding-DGcr6Aj_.mjs +2 -0
- package/dist/ensure-browser-core-Buls24LQ.mjs +1 -0
- package/dist/evidence-graph-bridge-B0yhGPcs.mjs +1 -0
- package/dist/factory-Cx_1LorX.mjs +1 -0
- package/dist/flat-target-session-CO5g78k3.mjs +1 -0
- package/dist/formatAddress-C7j2fDlM.mjs +1 -0
- package/dist/graphql-HLf3MS8H.mjs +62 -0
- package/dist/handlers-BLMa4X7l.mjs +54 -0
- package/dist/handlers-BP12ZsWc.mjs +4 -0
- package/dist/handlers-BZoPla6E.mjs +1 -0
- package/dist/handlers-BggKiVx9.mjs +2 -0
- package/dist/handlers-D3iev8g1.mjs +1 -0
- package/dist/handlers-D49r1-1P.mjs +1 -0
- package/dist/handlers-DCE45Ww8.mjs +2 -0
- package/dist/handlers-DW5AbYs5.mjs +5 -0
- package/dist/handlers-De5u62Ga2.mjs +1 -0
- package/dist/handlers-DmQzIc44.mjs +31 -0
- package/dist/handlers-DnJRGp7t.mjs +302 -0
- package/dist/handlers-Dv_runVv.mjs +2 -0
- package/dist/handlers-S9Ws0IGy.mjs +2 -0
- package/dist/{handlers-Dz9PYsCa.mjs → handlers-pVNpaw4A.mjs} +118 -904
- package/dist/handlers.impl-CD2_kOcC.mjs +1 -0
- package/dist/hooks-DDKppogd.mjs +600 -0
- package/dist/index.mjs +12 -5235
- package/dist/logger-sBC6IdRT.mjs +1 -0
- package/dist/maintenance-CutEO84j.mjs +1 -0
- package/dist/manifest-BFGxlDRh.mjs +123 -0
- package/dist/manifest-BPuE6oH2.mjs +1 -0
- package/dist/manifest-BXry5N09.mjs +1 -0
- package/dist/manifest-BeP_zJGb2.mjs +1 -0
- package/dist/manifest-C0g67k6U.mjs +1 -0
- package/dist/manifest-C1nZkTkO.mjs +1 -0
- package/dist/manifest-C7qV1z7F.mjs +1 -0
- package/dist/manifest-CDeUZGUZ.mjs +1 -0
- package/dist/manifest-CDiCtaQT.mjs +1 -0
- package/dist/manifest-CFn0359q2.mjs +1 -0
- package/dist/manifest-CGq4NpqH2.mjs +1 -0
- package/dist/manifest-CJMGt7Qy.mjs +1 -0
- package/dist/manifest-CRIJq4Hs.mjs +1 -0
- package/dist/manifest-C_hEIjSx.mjs +1 -0
- package/dist/manifest-CeQmtQOY.mjs +1 -0
- package/dist/manifest-Cq0j7GZt.mjs +1 -0
- package/dist/manifest-CtPmHAdn.mjs +1 -0
- package/dist/manifest-Cx2IVMUY.mjs +1 -0
- package/dist/manifest-D16xPXro.mjs +1 -0
- package/dist/manifest-D44TaRJU.mjs +1 -0
- package/dist/manifest-D610kxZr.mjs +2 -0
- package/dist/manifest-DC-SMF6b.mjs +1 -0
- package/dist/manifest-DD3rtxvV.mjs +1 -0
- package/dist/manifest-DKUorv5M.mjs +1 -0
- package/dist/manifest-DMJlcsTR.mjs +1 -0
- package/dist/manifest-DWUUWBz0.mjs +1 -0
- package/dist/manifest-De-6Wf2R.mjs +1 -0
- package/dist/manifest-Dgh0uDW-.mjs +1 -0
- package/dist/manifest-Dm0o3i2U.mjs +1 -0
- package/dist/manifest-DsVh7Y4U.mjs +1 -0
- package/dist/manifest-DtEFSRaq.mjs +1 -0
- package/dist/manifest-H-EpAyZQ.mjs +1 -0
- package/dist/manifest-ais9Afrw.mjs +1 -0
- package/dist/manifest-tmb54wmA.mjs +1 -0
- package/dist/manifest-yu2xiQqe.mjs +1 -0
- package/dist/manifest-zrbrpKCC.mjs +1 -0
- package/dist/matchesWildcardPattern-BGqLSmEs.mjs +1 -0
- package/dist/modules-p-PUNv9r.mjs +332 -0
- package/dist/mojo-ipc-VGlv3Qyp.mjs +9 -0
- package/dist/network-BjZ1Y-GB.mjs +7 -0
- package/dist/outputPaths-BonGThuc.mjs +2 -0
- package/dist/parse-args-Cuk7-xUt.mjs +1 -0
- package/dist/platform-C446Lf97.mjs +93 -0
- package/dist/playwright-cdp-fallback-BwVR-_T3.mjs +1 -0
- package/dist/process-C9f2A5zk.mjs +962 -0
- package/dist/proxy-CvRepxgV.mjs +1 -0
- package/dist/registry-DUHIPE-v.mjs +1 -0
- package/dist/response-C7rKQst4.mjs +1 -0
- package/dist/search-defaults-D2bY-rzH.mjs +1 -0
- package/dist/server/plugin-api.mjs +1 -293
- package/dist/shared-state-board-Cyg-xh_k.mjs +1 -0
- package/dist/sourcemap-D6Q1UuAp.mjs +1 -0
- package/dist/ssrf-policy-T96MR3r6.mjs +1 -0
- package/dist/streaming-CTX58tbb.mjs +1 -0
- package/dist/tool-builder-CI9914Tf.mjs +1 -0
- package/dist/transform-Cv9P2vVD.mjs +103 -0
- package/dist/types-CuyefmGT.mjs +1 -0
- package/dist/types-DtThH00r.mjs +1 -0
- package/dist/wasm-DaJa8J0V.mjs +174 -0
- package/dist/webcrack-CsLLJIs9.mjs +46 -0
- package/dist/workflow-CYIXtrWD.mjs +101 -0
- package/package.json +50 -78
- package/dist/AntiCheatDetector-CqGDXmfc.mjs +0 -350
- package/dist/CacheAdapters-jJFy20G-.mjs +0 -80
- package/dist/CodeInjector-BdjRfNx7.mjs +0 -150
- package/dist/ConsoleMonitor-DykL3IAw.mjs +0 -2269
- package/dist/DarwinAPI-ETyy0xyo.mjs +0 -363
- package/dist/DetailedDataManager-HT49OrvF.mjs +0 -217
- package/dist/EventBus-DFKvADm3.mjs +0 -141
- package/dist/EvidenceGraphBridge-318Oi0Lf.mjs +0 -153
- package/dist/ExtensionManager-BDMsY2Dz.mjs +0 -721
- package/dist/FingerprintManager-BN4UQWnX.mjs +0 -96
- package/dist/HardwareBreakpoint-Cc2AFq1Y.mjs +0 -239
- package/dist/HeapAnalyzer-DruMgsgj.mjs +0 -284
- package/dist/InstrumentationSession-DLH0vd-z.mjs +0 -244
- package/dist/MemoryController-CMtviNW_.mjs +0 -167
- package/dist/MemoryScanSession-ITgb_NMi.mjs +0 -278
- package/dist/MemoryScanner-CiL7Z3ey.mjs +0 -428
- package/dist/NativeMemoryManager.impl-D9Lkovvn.mjs +0 -485
- package/dist/NativeMemoryManager.utils-BBlAixF5.mjs +0 -165
- package/dist/PEAnalyzer-DMQ44gen.mjs +0 -385
- package/dist/PageController-BPJNqqBN.mjs +0 -431
- package/dist/PointerChainEngine-K7wN8Z-w.mjs +0 -325
- package/dist/PrerequisiteError-TuyZIs6n.mjs +0 -20
- package/dist/ProcessRegistry-zGg12QbE.mjs +0 -74
- package/dist/ResponseBuilder-CJXWmWNw.mjs +0 -143
- package/dist/ReverseEvidenceGraph-C02-gXOh.mjs +0 -269
- package/dist/ScriptManager-ZuWD-0Jg.mjs +0 -3003
- package/dist/Speedhack-D-z0umeT.mjs +0 -156
- package/dist/StealthVerifier-BWmPgQsv.mjs +0 -135
- package/dist/StructureAnalyzer-Cav5AVSL.mjs +0 -429
- package/dist/ToolCatalog-5OJdMiF0.mjs +0 -582
- package/dist/ToolError-jh9whhMd.mjs +0 -15
- package/dist/ToolProbe-DbCFGyrg.mjs +0 -45
- package/dist/ToolRegistry-B9krbTtI.mjs +0 -180
- package/dist/ToolRouter.policy-BGDAGyeH.mjs +0 -344
- package/dist/TraceRecorder-B41Z5XBj.mjs +0 -1286
- package/dist/VersionDetector-K3V4vGsw.mjs +0 -104
- package/dist/Win32API-C2kjj0ze.mjs +0 -346
- package/dist/Win32Debug-CKrGOTpo.mjs +0 -274
- package/dist/WorkflowEngine-DJ6M4opp.mjs +0 -569
- package/dist/analysis-BHeJW2Nb.mjs +0 -1234
- package/dist/artifactRetention-CPXkUJXp.mjs +0 -598
- package/dist/artifacts-DkfosXH3.mjs +0 -59
- package/dist/authorization-schema-DRqyJMSk.mjs +0 -31
- package/dist/betterSqlite3-DLSBZodi.mjs +0 -74
- package/dist/binary-instrument--V3MAhJ4.mjs +0 -971
- package/dist/bind-helpers-ClV34xdn.mjs +0 -42
- package/dist/boringssl-inspector-Bo_LOLaS.mjs +0 -180
- package/dist/browser-Dx3_S2cG.mjs +0 -4369
- package/dist/capabilities-CcHlvWgK.mjs +0 -33
- package/dist/chunk-CjcI7cDX.mjs +0 -15
- package/dist/concurrency-Drev_Vz9.mjs +0 -41
- package/dist/constants-CDZLOoVv.mjs +0 -534
- package/dist/coordination-DgItD9DL.mjs +0 -259
- package/dist/debugger-RS3RSAqs.mjs +0 -1288
- package/dist/definitions-BEoYofW5.mjs +0 -47
- package/dist/definitions-BRaefg3u.mjs +0 -365
- package/dist/definitions-BbkvZkiv.mjs +0 -96
- package/dist/definitions-BtWSHJ3o.mjs +0 -17
- package/dist/definitions-C1gCHO0i.mjs +0 -43
- package/dist/definitions-CDOg_b-l.mjs +0 -138
- package/dist/definitions-CVPD9hzZ.mjs +0 -54
- package/dist/definitions-Cea8Lgl7.mjs +0 -94
- package/dist/definitions-DAgIyjxM.mjs +0 -10
- package/dist/definitions-DJA27nsL.mjs +0 -66
- package/dist/definitions-DKPFU3LW.mjs +0 -25
- package/dist/definitions-DPRpZQ96.mjs +0 -47
- package/dist/definitions-DUE5gmdn.mjs +0 -18
- package/dist/definitions-DYVjOtxa.mjs +0 -26
- package/dist/definitions-DcYLVLCo.mjs +0 -37
- package/dist/definitions-Pp5LI2H4.mjs +0 -27
- package/dist/definitions-j9KdHVNR.mjs +0 -14
- package/dist/definitions-uzkjBwa7.mjs +0 -258
- package/dist/definitions-va-AnLuQ.mjs +0 -28
- package/dist/encoding-DJeqHmpd.mjs +0 -1079
- package/dist/evidence-graph-bridge-DcYizFk2.mjs +0 -136
- package/dist/factory-C90tBff6.mjs +0 -575
- package/dist/flat-target-session-Dgax2Cy3.mjs +0 -29
- package/dist/formatAddress-nnMvEohD.mjs +0 -17
- package/dist/graphql-CoHrhweh.mjs +0 -1197
- package/dist/handlers-4jmR0nMs.mjs +0 -898
- package/dist/handlers-BAHPxcch.mjs +0 -789
- package/dist/handlers-BOs9b907.mjs +0 -2600
- package/dist/handlers-BWXEy6ef.mjs +0 -917
- package/dist/handlers-Bndn6QvE.mjs +0 -111
- package/dist/handlers-BqC4bD4s.mjs +0 -681
- package/dist/handlers-BtYq60bM2.mjs +0 -276
- package/dist/handlers-BzgcB4iv.mjs +0 -799
- package/dist/handlers-CRyRWj2b.mjs +0 -859
- package/dist/handlers-CVv2H1uq.mjs +0 -592
- package/dist/handlers-Dl5a7JS4.mjs +0 -572
- package/dist/handlers-Dx2d7jt7.mjs +0 -2537
- package/dist/handlers-HujRKC3b.mjs +0 -661
- package/dist/handlers.impl-XWXkQfyi.mjs +0 -807
- package/dist/hooks-B1B8NRHL.mjs +0 -898
- package/dist/logger-Dh_xb7_2.mjs +0 -93
- package/dist/maintenance-PRMkLVRW.mjs +0 -835
- package/dist/manifest-67Bok-Si.mjs +0 -58
- package/dist/manifest-6lNTMZAB2.mjs +0 -87
- package/dist/manifest-B2duEHiH.mjs +0 -90
- package/dist/manifest-B6EY9Vm8.mjs +0 -57
- package/dist/manifest-B6nKSbyY.mjs +0 -95
- package/dist/manifest-BL8AQNPF.mjs +0 -106
- package/dist/manifest-BSZvJJmV.mjs +0 -47
- package/dist/manifest-BU7qzUyX.mjs +0 -418
- package/dist/manifest-Bl62e8WK.mjs +0 -49
- package/dist/manifest-Bo5cXjdt.mjs +0 -82
- package/dist/manifest-BpS4gtUK.mjs +0 -1347
- package/dist/manifest-Bv65_e2W.mjs +0 -101
- package/dist/manifest-BytNIF4Z.mjs +0 -117
- package/dist/manifest-C-xtsjS3.mjs +0 -81
- package/dist/manifest-CDYl7OhA.mjs +0 -66
- package/dist/manifest-CRZ3xmkD.mjs +0 -61
- package/dist/manifest-CoW6u4Tp.mjs +0 -132
- package/dist/manifest-Cq5zN_8A.mjs +0 -50
- package/dist/manifest-D7YZM_2e.mjs +0 -194
- package/dist/manifest-DE_VrAeQ.mjs +0 -314
- package/dist/manifest-DGsXSCpT.mjs +0 -39
- package/dist/manifest-DJ2vfEuW.mjs +0 -156
- package/dist/manifest-DPXDYhEu.mjs +0 -80
- package/dist/manifest-Dd4fQb0a.mjs +0 -322
- package/dist/manifest-Deq6opGg.mjs +0 -223
- package/dist/manifest-DfJTafJK.mjs +0 -37
- package/dist/manifest-DgOdgN_j.mjs +0 -50
- package/dist/manifest-DlbMW4v4.mjs +0 -47
- package/dist/manifest-DmVfbH0w.mjs +0 -374
- package/dist/manifest-Dog6Ddjr.mjs +0 -109
- package/dist/manifest-DvgU5FWb.mjs +0 -58
- package/dist/manifest-HsfDBs7j.mjs +0 -50
- package/dist/manifest-I8oQHvCG.mjs +0 -186
- package/dist/manifest-NvH_a-av.mjs +0 -786
- package/dist/manifest-cEJU1v0Z.mjs +0 -129
- package/dist/manifest-wOl5XLB12.mjs +0 -112
- package/dist/modules-tZozf0LQ.mjs +0 -10635
- package/dist/mojo-ipc-DXNEXEqb.mjs +0 -640
- package/dist/network-CPVvwvFg.mjs +0 -3852
- package/dist/outputPaths-um7lCRY3.mjs +0 -1141
- package/dist/parse-args-B4cY5Vx5.mjs +0 -39
- package/dist/platform-CYeFoTWp.mjs +0 -2161
- package/dist/process-BTbgcVc6.mjs +0 -1306
- package/dist/proxy-r8YN6nP1.mjs +0 -192
- package/dist/registry-Bl8ZQW61.mjs +0 -34
- package/dist/response-CWhh2aLo.mjs +0 -34
- package/dist/shared-state-board-BoZnSoj-.mjs +0 -586
- package/dist/sourcemap-BIDHUVXy.mjs +0 -934
- package/dist/ssrf-policy-Dsqd-DTX.mjs +0 -166
- package/dist/streaming-Dal6utPp.mjs +0 -725
- package/dist/tool-builder-BHJp32mV.mjs +0 -186
- package/dist/transform-DRVgGG90.mjs +0 -1011
- package/dist/types-Bx92KJfT.mjs +0 -4
- package/dist/types-DDBWs9UP.mjs +0 -37
- package/dist/wasm-BYx5UOeG.mjs +0 -1044
- package/dist/webcrack-Be0_FccV.mjs +0 -747
- package/dist/workflow-BpuKEtvn.mjs +0 -725
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { t as __exportAll } from "./chunk-CjcI7cDX.mjs";
|
|
2
|
-
//#region src/modules/v8-inspector/VersionDetector.ts
|
|
3
|
-
var VersionDetector_exports = /* @__PURE__ */ __exportAll({ VersionDetector: () => VersionDetector });
|
|
4
|
-
function isRecord(value) {
|
|
5
|
-
return typeof value === "object" && value !== null;
|
|
6
|
-
}
|
|
7
|
-
function isCDPPageLike(value) {
|
|
8
|
-
return isRecord(value) && typeof value["createCDPSession"] === "function";
|
|
9
|
-
}
|
|
10
|
-
function readString(record, key) {
|
|
11
|
-
const value = record[key];
|
|
12
|
-
return typeof value === "string" ? value : null;
|
|
13
|
-
}
|
|
14
|
-
function readBooleanResult(value) {
|
|
15
|
-
if (typeof value === "boolean") return value;
|
|
16
|
-
if (isRecord(value)) {
|
|
17
|
-
const nested = value["value"];
|
|
18
|
-
return typeof nested === "boolean" ? nested : false;
|
|
19
|
-
}
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
var VersionDetector = class {
|
|
23
|
-
constructor(getPage) {
|
|
24
|
-
this.getPage = getPage;
|
|
25
|
-
}
|
|
26
|
-
async detectV8Version() {
|
|
27
|
-
const browserVersion = await this.detectBrowserVersion();
|
|
28
|
-
if (browserVersion) return browserVersion;
|
|
29
|
-
if (typeof process.versions.v8 === "string" && process.versions.v8.length > 0) return this.parseV8Version(process.versions.v8);
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
parseV8Version(versionString) {
|
|
33
|
-
const match = /(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)(?:\.(?<commit>[A-Za-z0-9._-]+))?/u.exec(versionString.trim());
|
|
34
|
-
if (!match?.groups) return {
|
|
35
|
-
major: 0,
|
|
36
|
-
minor: 0,
|
|
37
|
-
patch: 0,
|
|
38
|
-
commit: ""
|
|
39
|
-
};
|
|
40
|
-
const major = Number(match.groups["major"] ?? 0);
|
|
41
|
-
const minor = Number(match.groups["minor"] ?? 0);
|
|
42
|
-
const patch = Number(match.groups["patch"] ?? 0);
|
|
43
|
-
return {
|
|
44
|
-
major: Number.isFinite(major) ? major : 0,
|
|
45
|
-
minor: Number.isFinite(minor) ? minor : 0,
|
|
46
|
-
patch: Number.isFinite(patch) ? patch : 0,
|
|
47
|
-
commit: match.groups["commit"] ?? ""
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
async supportsNativesSyntax() {
|
|
51
|
-
if (process.execArgv.includes("--allow-natives-syntax")) return true;
|
|
52
|
-
const session = await this.createSession();
|
|
53
|
-
if (!session) return false;
|
|
54
|
-
try {
|
|
55
|
-
const response = await session.send("Runtime.evaluate", {
|
|
56
|
-
expression: `
|
|
57
|
-
(() => {
|
|
58
|
-
try {
|
|
59
|
-
return Boolean(new Function("return %HaveSameMap({}, {})")());
|
|
60
|
-
} catch (error) {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
})()
|
|
64
|
-
`,
|
|
65
|
-
returnByValue: true,
|
|
66
|
-
awaitPromise: false
|
|
67
|
-
});
|
|
68
|
-
if (!isRecord(response)) return false;
|
|
69
|
-
return readBooleanResult(response["result"]);
|
|
70
|
-
} catch {
|
|
71
|
-
return false;
|
|
72
|
-
} finally {
|
|
73
|
-
await session.detach().catch(() => void 0);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
async detectBrowserVersion() {
|
|
77
|
-
const session = await this.createSession();
|
|
78
|
-
if (!session) return null;
|
|
79
|
-
try {
|
|
80
|
-
const response = await session.send("Browser.getVersion");
|
|
81
|
-
if (!isRecord(response)) return null;
|
|
82
|
-
const jsVersion = readString(response, "jsVersion");
|
|
83
|
-
if (jsVersion) return this.parseV8Version(jsVersion);
|
|
84
|
-
const product = readString(response, "product");
|
|
85
|
-
return product ? this.parseV8Version(product) : null;
|
|
86
|
-
} catch {
|
|
87
|
-
return null;
|
|
88
|
-
} finally {
|
|
89
|
-
await session.detach().catch(() => void 0);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
async createSession() {
|
|
93
|
-
if (!this.getPage) return null;
|
|
94
|
-
try {
|
|
95
|
-
const page = await this.getPage();
|
|
96
|
-
if (!isCDPPageLike(page)) return null;
|
|
97
|
-
return await page.createCDPSession();
|
|
98
|
-
} catch {
|
|
99
|
-
return null;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
//#endregion
|
|
104
|
-
export { VersionDetector_exports as n, VersionDetector as t };
|
|
@@ -1,346 +0,0 @@
|
|
|
1
|
-
import { t as __exportAll } from "./chunk-CjcI7cDX.mjs";
|
|
2
|
-
import { t as logger } from "./logger-Dh_xb7_2.mjs";
|
|
3
|
-
import koffi from "koffi";
|
|
4
|
-
//#region src/native/Win32API.ts
|
|
5
|
-
/**
|
|
6
|
-
* Win32 API Bindings using koffi FFI
|
|
7
|
-
* Direct native calls to Windows kernel32.dll, ntdll.dll, psapi.dll
|
|
8
|
-
*
|
|
9
|
-
* This replaces PowerShell-based P/Invoke with direct FFI calls,
|
|
10
|
-
* providing 10-100x performance improvement for memory operations.
|
|
11
|
-
*
|
|
12
|
-
* Note: We use inline types in function signatures to avoid
|
|
13
|
-
* "Duplicate type name" errors in test environments where modules
|
|
14
|
-
* may be loaded multiple times.
|
|
15
|
-
*
|
|
16
|
-
* @module Win32API
|
|
17
|
-
*/
|
|
18
|
-
var Win32API_exports = /* @__PURE__ */ __exportAll({
|
|
19
|
-
CloseHandle: () => CloseHandle,
|
|
20
|
-
CreateRemoteThread: () => CreateRemoteThread,
|
|
21
|
-
EnumProcessModules: () => EnumProcessModules,
|
|
22
|
-
GetLastError: () => GetLastError,
|
|
23
|
-
GetModuleBaseName: () => GetModuleBaseName,
|
|
24
|
-
GetModuleFileNameEx: () => GetModuleFileNameEx,
|
|
25
|
-
GetModuleHandle: () => GetModuleHandle,
|
|
26
|
-
GetModuleInformation: () => GetModuleInformation,
|
|
27
|
-
GetProcAddress: () => GetProcAddress,
|
|
28
|
-
MEM: () => MEM,
|
|
29
|
-
NtQueryInformationProcess: () => NtQueryInformationProcess,
|
|
30
|
-
OpenProcess: () => OpenProcess,
|
|
31
|
-
PAGE: () => PAGE,
|
|
32
|
-
PROCESS_ACCESS: () => PROCESS_ACCESS,
|
|
33
|
-
ReadProcessMemory: () => ReadProcessMemory,
|
|
34
|
-
VirtualAllocEx: () => VirtualAllocEx,
|
|
35
|
-
VirtualFreeEx: () => VirtualFreeEx,
|
|
36
|
-
VirtualProtectEx: () => VirtualProtectEx,
|
|
37
|
-
VirtualQueryEx: () => VirtualQueryEx,
|
|
38
|
-
WriteProcessMemory: () => WriteProcessMemory,
|
|
39
|
-
isKoffiAvailable: () => isKoffiAvailable,
|
|
40
|
-
isWindows: () => isWindows,
|
|
41
|
-
openProcessForMemory: () => openProcessForMemory
|
|
42
|
-
});
|
|
43
|
-
const PROCESS_ACCESS = {
|
|
44
|
-
TERMINATE: 1,
|
|
45
|
-
CREATE_THREAD: 2,
|
|
46
|
-
SET_SESSIONID: 4,
|
|
47
|
-
VM_OPERATION: 8,
|
|
48
|
-
VM_READ: 16,
|
|
49
|
-
VM_WRITE: 32,
|
|
50
|
-
DUP_HANDLE: 64,
|
|
51
|
-
CREATE_PROCESS: 128,
|
|
52
|
-
SET_QUOTA: 256,
|
|
53
|
-
SET_INFORMATION: 512,
|
|
54
|
-
QUERY_INFORMATION: 1024,
|
|
55
|
-
SUSPEND_RESUME: 2048,
|
|
56
|
-
QUERY_LIMITED_INFORMATION: 4096,
|
|
57
|
-
ALL_ACCESS: 2035711
|
|
58
|
-
};
|
|
59
|
-
const MEM = {
|
|
60
|
-
COMMIT: 4096,
|
|
61
|
-
RESERVE: 8192,
|
|
62
|
-
DECOMMIT: 16384,
|
|
63
|
-
RELEASE: 32768,
|
|
64
|
-
FREE: 65536,
|
|
65
|
-
PRIVATE: 131072,
|
|
66
|
-
MAPPED: 262144,
|
|
67
|
-
RESET: 524288,
|
|
68
|
-
TOP_DOWN: 1048576,
|
|
69
|
-
WRITE_WATCH: 2097152,
|
|
70
|
-
PHYSICAL: 4194304,
|
|
71
|
-
LARGE_PAGES: 536870912
|
|
72
|
-
};
|
|
73
|
-
const PAGE = {
|
|
74
|
-
NOACCESS: 1,
|
|
75
|
-
READONLY: 2,
|
|
76
|
-
READWRITE: 4,
|
|
77
|
-
WRITECOPY: 8,
|
|
78
|
-
EXECUTE: 16,
|
|
79
|
-
EXECUTE_READ: 32,
|
|
80
|
-
EXECUTE_READWRITE: 64,
|
|
81
|
-
EXECUTE_WRITECOPY: 128,
|
|
82
|
-
GUARD: 256,
|
|
83
|
-
NOCACHE: 512,
|
|
84
|
-
WRITECOMBINE: 1024
|
|
85
|
-
};
|
|
86
|
-
let kernel32 = null;
|
|
87
|
-
let ntdll = null;
|
|
88
|
-
let psapi = null;
|
|
89
|
-
let koffiAvailable = null;
|
|
90
|
-
/**
|
|
91
|
-
* Check if koffi is available
|
|
92
|
-
*/
|
|
93
|
-
function isKoffiAvailable() {
|
|
94
|
-
if (koffiAvailable !== null) return koffiAvailable;
|
|
95
|
-
try {
|
|
96
|
-
koffi.load("kernel32.dll").unload();
|
|
97
|
-
koffiAvailable = true;
|
|
98
|
-
return true;
|
|
99
|
-
} catch {
|
|
100
|
-
/* istanbul ignore next */
|
|
101
|
-
koffiAvailable = false;
|
|
102
|
-
/* istanbul ignore next */
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Check if running on Windows
|
|
108
|
-
*/
|
|
109
|
-
function isWindows() {
|
|
110
|
-
return process.platform === "win32";
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Get or load kernel32.dll
|
|
114
|
-
*/
|
|
115
|
-
function getKernel32() {
|
|
116
|
-
if (!kernel32) {
|
|
117
|
-
kernel32 = koffi.load("kernel32.dll");
|
|
118
|
-
logger.debug("Loaded kernel32.dll via koffi");
|
|
119
|
-
}
|
|
120
|
-
return kernel32;
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Get or load ntdll.dll
|
|
124
|
-
*/
|
|
125
|
-
function getNtdll() {
|
|
126
|
-
if (!ntdll) {
|
|
127
|
-
ntdll = koffi.load("ntdll.dll");
|
|
128
|
-
logger.debug("Loaded ntdll.dll via koffi");
|
|
129
|
-
}
|
|
130
|
-
return ntdll;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Get or load psapi.dll
|
|
134
|
-
*/
|
|
135
|
-
function getPsapi() {
|
|
136
|
-
if (!psapi) {
|
|
137
|
-
psapi = koffi.load("psapi.dll");
|
|
138
|
-
logger.debug("Loaded psapi.dll via koffi");
|
|
139
|
-
}
|
|
140
|
-
return psapi;
|
|
141
|
-
}
|
|
142
|
-
function toPointerBigInt(value) {
|
|
143
|
-
if (value === null || value === void 0) return 0n;
|
|
144
|
-
if (typeof value === "bigint") return value;
|
|
145
|
-
if (typeof value === "number") return BigInt(value);
|
|
146
|
-
return koffi.address(value);
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Open a process handle
|
|
150
|
-
*/
|
|
151
|
-
function OpenProcess(dwDesiredAccess, bInheritHandle, dwProcessId) {
|
|
152
|
-
return toPointerBigInt(getKernel32().func("void * OpenProcess(uint32, int, uint32)")(dwDesiredAccess, bInheritHandle ? 1 : 0, dwProcessId));
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Close a handle
|
|
156
|
-
*/
|
|
157
|
-
function CloseHandle(hObject) {
|
|
158
|
-
return getKernel32().func("int CloseHandle(void *)")(hObject) !== 0;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Read process memory - returns buffer directly
|
|
162
|
-
*/
|
|
163
|
-
function ReadProcessMemory(hProcess, lpBaseAddress, size) {
|
|
164
|
-
const fn = getKernel32().func("int ReadProcessMemory(void *, void *, _Out_ uint8_t *, size_t, _Out_ size_t *)");
|
|
165
|
-
const buffer = Buffer.alloc(size);
|
|
166
|
-
const bytesReadBuf = Buffer.alloc(8);
|
|
167
|
-
if (fn(hProcess, lpBaseAddress, buffer, BigInt(size), bytesReadBuf) === 0) {
|
|
168
|
-
const error = GetLastError();
|
|
169
|
-
throw new Error(`ReadProcessMemory failed. Error: 0x${error.toString(16)}`);
|
|
170
|
-
}
|
|
171
|
-
return buffer;
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Write process memory
|
|
175
|
-
*/
|
|
176
|
-
function WriteProcessMemory(hProcess, lpBaseAddress, data) {
|
|
177
|
-
const fn = getKernel32().func("int WriteProcessMemory(void *, void *, uint8_t *, size_t, _Out_ size_t *)");
|
|
178
|
-
const bytesWrittenBuf = Buffer.alloc(8);
|
|
179
|
-
if (fn(hProcess, lpBaseAddress, data, BigInt(data.length), bytesWrittenBuf) === 0) {
|
|
180
|
-
const error = GetLastError();
|
|
181
|
-
throw new Error(`WriteProcessMemory failed. Error: 0x${error.toString(16)}`);
|
|
182
|
-
}
|
|
183
|
-
return Number(bytesWrittenBuf.readBigUInt64LE());
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Query memory region information
|
|
187
|
-
* Uses Buffer parsing to avoid koffi struct registration issues
|
|
188
|
-
*/
|
|
189
|
-
function VirtualQueryEx(hProcess, lpAddress) {
|
|
190
|
-
const fn = getKernel32().func("size_t VirtualQueryEx(void *, void *, _Out_ uint8_t *, size_t)");
|
|
191
|
-
const structSize = 48;
|
|
192
|
-
const buffer = Buffer.alloc(structSize);
|
|
193
|
-
const result = fn(hProcess, lpAddress, buffer, BigInt(structSize));
|
|
194
|
-
if (Number(result) !== structSize) return {
|
|
195
|
-
success: false,
|
|
196
|
-
info: {}
|
|
197
|
-
};
|
|
198
|
-
return {
|
|
199
|
-
success: true,
|
|
200
|
-
info: {
|
|
201
|
-
BaseAddress: buffer.readBigUInt64LE(0),
|
|
202
|
-
AllocationBase: buffer.readBigUInt64LE(8),
|
|
203
|
-
AllocationProtect: buffer.readUInt32LE(16),
|
|
204
|
-
RegionSize: buffer.readBigUInt64LE(24),
|
|
205
|
-
State: buffer.readUInt32LE(32),
|
|
206
|
-
Protect: buffer.readUInt32LE(36),
|
|
207
|
-
Type: buffer.readUInt32LE(40)
|
|
208
|
-
}
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Change memory protection
|
|
213
|
-
*/
|
|
214
|
-
function VirtualProtectEx(hProcess, lpAddress, dwSize, flNewProtect) {
|
|
215
|
-
const fn = getKernel32().func("int VirtualProtectEx(void *, void *, size_t, uint32, _Out_ uint32 *)");
|
|
216
|
-
const oldProtectBuf = Buffer.alloc(4);
|
|
217
|
-
return {
|
|
218
|
-
success: fn(hProcess, lpAddress, BigInt(dwSize), flNewProtect, oldProtectBuf) !== 0,
|
|
219
|
-
oldProtect: oldProtectBuf.readUInt32LE(0)
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Allocate memory in another process
|
|
224
|
-
*/
|
|
225
|
-
function VirtualAllocEx(hProcess, lpAddress, dwSize, flAllocationType, flProtect) {
|
|
226
|
-
return toPointerBigInt(getKernel32().func("void * VirtualAllocEx(void *, void *, size_t, uint32, uint32)")(hProcess, lpAddress, BigInt(dwSize), flAllocationType, flProtect));
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Free memory in another process
|
|
230
|
-
*/
|
|
231
|
-
function VirtualFreeEx(hProcess, lpAddress, dwSize, dwFreeType) {
|
|
232
|
-
return getKernel32().func("int VirtualFreeEx(void *, void *, size_t, uint32)")(hProcess, lpAddress, BigInt(dwSize), dwFreeType) !== 0;
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Create a remote thread in another process
|
|
236
|
-
*/
|
|
237
|
-
function CreateRemoteThread(hProcess, lpStartAddress, lpParameter) {
|
|
238
|
-
const fn = getKernel32().func("void * CreateRemoteThread(void *, void *, size_t, void *, void *, uint32, _Out_ uint32 *)");
|
|
239
|
-
const threadIdBuf = Buffer.alloc(4);
|
|
240
|
-
return {
|
|
241
|
-
handle: toPointerBigInt(fn(hProcess, null, 0n, lpStartAddress, lpParameter, 0, threadIdBuf)),
|
|
242
|
-
threadId: threadIdBuf.readUInt32LE(0)
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Get module handle by name
|
|
247
|
-
*/
|
|
248
|
-
function GetModuleHandle(lpModuleName) {
|
|
249
|
-
return toPointerBigInt(getKernel32().func("void * GetModuleHandleA(char *)")(lpModuleName));
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* Get function address from module
|
|
253
|
-
*/
|
|
254
|
-
function GetProcAddress(hModule, lpProcName) {
|
|
255
|
-
return toPointerBigInt(getKernel32().func("void * GetProcAddress(void *, char *)")(hModule, lpProcName));
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Get last error code
|
|
259
|
-
*/
|
|
260
|
-
function GetLastError() {
|
|
261
|
-
return getKernel32().func("uint32 GetLastError()")();
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* NtQueryInformationProcess for anti-debug detection
|
|
265
|
-
*/
|
|
266
|
-
function NtQueryInformationProcess(hProcess, processInformationClass) {
|
|
267
|
-
const fn = getNtdll().func("int32 NtQueryInformationProcess(void *, uint32, _Out_ void *, uint32, void *)");
|
|
268
|
-
const debugPortBuf = Buffer.alloc(8);
|
|
269
|
-
return {
|
|
270
|
-
status: fn(hProcess, processInformationClass, debugPortBuf, 8, null),
|
|
271
|
-
debugPort: Number(debugPortBuf.readBigUInt64LE())
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Enumerate process modules
|
|
276
|
-
*/
|
|
277
|
-
function EnumProcessModules(hProcess, maxModules = 1024) {
|
|
278
|
-
const fn = getPsapi().func("int EnumProcessModules(void *, _Out_ void *, uint32, _Out_ uint32 *)");
|
|
279
|
-
const moduleBuf = Buffer.alloc(maxModules * 8);
|
|
280
|
-
const neededBuf = Buffer.alloc(4);
|
|
281
|
-
const result = fn(hProcess, moduleBuf, maxModules * 8, neededBuf);
|
|
282
|
-
const needed = neededBuf.readUInt32LE(0);
|
|
283
|
-
const count = Math.floor(needed / 8);
|
|
284
|
-
const modules = [];
|
|
285
|
-
for (let i = 0; i < count; i++) modules.push(moduleBuf.readBigUInt64LE(i * 8));
|
|
286
|
-
return {
|
|
287
|
-
success: result !== 0,
|
|
288
|
-
modules,
|
|
289
|
-
count
|
|
290
|
-
};
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Get module base name
|
|
294
|
-
*/
|
|
295
|
-
function GetModuleBaseName(hProcess, hModule, maxSize = 260) {
|
|
296
|
-
const fn = getPsapi().func("uint32 GetModuleBaseNameA(void *, void *, _Out_ char *, uint32)");
|
|
297
|
-
const buffer = Buffer.alloc(maxSize);
|
|
298
|
-
fn(hProcess, hModule, buffer, maxSize);
|
|
299
|
-
let len = 0;
|
|
300
|
-
while (len < maxSize && buffer[len] !== 0) len++;
|
|
301
|
-
return buffer.toString("utf8", 0, len);
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* Get full module path from a remote process.
|
|
305
|
-
* Returns null when the API is unavailable or the module path cannot be resolved.
|
|
306
|
-
*/
|
|
307
|
-
function GetModuleFileNameEx(hProcess, hModule, maxSize = 32768) {
|
|
308
|
-
const fn = getPsapi().func("uint32 GetModuleFileNameExA(void *, void *, _Out_ char *, uint32)");
|
|
309
|
-
const buffer = Buffer.alloc(maxSize);
|
|
310
|
-
const result = fn(hProcess, hModule, buffer, maxSize);
|
|
311
|
-
if (typeof result !== "number" || result <= 0) return null;
|
|
312
|
-
let len = 0;
|
|
313
|
-
while (len < maxSize && buffer[len] !== 0) len++;
|
|
314
|
-
return len > 0 ? buffer.toString("utf8", 0, len) : null;
|
|
315
|
-
}
|
|
316
|
-
/**
|
|
317
|
-
* Get module information
|
|
318
|
-
* Uses Buffer parsing to avoid koffi struct registration issues
|
|
319
|
-
*/
|
|
320
|
-
function GetModuleInformation(hProcess, hModule) {
|
|
321
|
-
const fn = getPsapi().func("int GetModuleInformation(void *, void *, _Out_ uint8_t *, uint32)");
|
|
322
|
-
const buffer = Buffer.alloc(24);
|
|
323
|
-
const result = fn(hProcess, hModule, buffer, 24);
|
|
324
|
-
const info = {
|
|
325
|
-
lpBaseOfDll: buffer.readBigUInt64LE(0),
|
|
326
|
-
SizeOfImage: buffer.readUInt32LE(8),
|
|
327
|
-
EntryPoint: buffer.readBigUInt64LE(16)
|
|
328
|
-
};
|
|
329
|
-
return {
|
|
330
|
-
success: result !== 0,
|
|
331
|
-
info
|
|
332
|
-
};
|
|
333
|
-
}
|
|
334
|
-
/**
|
|
335
|
-
* Open a process with standard memory access rights
|
|
336
|
-
*/
|
|
337
|
-
function openProcessForMemory(pid, writeAccess = false) {
|
|
338
|
-
const handle = OpenProcess(writeAccess ? PROCESS_ACCESS.VM_READ | PROCESS_ACCESS.VM_WRITE | PROCESS_ACCESS.VM_OPERATION | PROCESS_ACCESS.QUERY_INFORMATION : PROCESS_ACCESS.VM_READ | PROCESS_ACCESS.QUERY_INFORMATION, false, pid);
|
|
339
|
-
if (handle === 0n) {
|
|
340
|
-
const error = GetLastError();
|
|
341
|
-
throw new Error(`Failed to open process ${pid}. Error: 0x${error.toString(16)}. Run as Administrator.`);
|
|
342
|
-
}
|
|
343
|
-
return handle;
|
|
344
|
-
}
|
|
345
|
-
//#endregion
|
|
346
|
-
export { WriteProcessMemory as _, GetModuleFileNameEx as a, openProcessForMemory as b, GetProcAddress as c, ReadProcessMemory as d, VirtualAllocEx as f, Win32API_exports as g, VirtualQueryEx as h, GetModuleBaseName as i, MEM as l, VirtualProtectEx as m, EnumProcessModules as n, GetModuleHandle as o, VirtualFreeEx as p, GetLastError as r, GetModuleInformation as s, CloseHandle as t, PAGE as u, isKoffiAvailable as v, isWindows as y };
|