@jshookmcp/jshook 0.3.3 → 0.3.4
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 +19 -4
- package/README.zh.md +19 -4
- package/dist/AntiCheatDetector-B-mz4DK_.mjs +1 -0
- package/dist/{BrowserSessionCoordinator-QIt3tetp.mjs → BrowserSessionCoordinator-Cdic8FsH.mjs} +1 -1
- package/dist/CodeAnalyzerDataFlow-a-NkwcaG.mjs +2 -0
- package/dist/CodeInjector-B099WO6x.mjs +1 -0
- package/dist/ConsoleMonitor-BZRqrBH-.mjs +306 -0
- package/dist/CpuEngine-BC8jayy9.mjs +1 -0
- package/dist/DartAotExecutor-B7WVTKsd.mjs +1 -0
- package/dist/DartAotLoader-BxdhW-K2.mjs +2 -0
- package/dist/DarwinAPI-DzojdfjF.mjs +1 -0
- package/dist/{DetailedDataManager-Z77fDl9Z.mjs → DetailedDataManager-Dgh402Gp.mjs} +2 -2
- package/dist/ExecutionSandbox-QbWQmzuC.mjs +45 -0
- package/dist/ExtensionManager.tools-D3h818Xs.mjs +1 -0
- package/dist/FingerprintManager-D9Zlr6be.mjs +1 -0
- package/dist/HardwareBreakpoint-C_lJ22bj.mjs +1 -0
- package/dist/HeapAnalyzer-bJbLvzp6.mjs +1 -0
- package/dist/HookPatternScanner-yx4vJ9sd.mjs +1 -0
- package/dist/InstrumentationSession-Cv1wikLA.mjs +1 -0
- package/dist/IntegrityScanner-BB7sw-SA.mjs +1 -0
- package/dist/JScramblerDeobfuscator-NVR5VatT.mjs +1 -0
- package/dist/MCPServer.activation.ttl-C2wOCMLV.mjs +1 -0
- package/dist/MCPServer.search.helpers-DlassAew.mjs +2 -0
- package/dist/MemoryController-CCsGuGJS.mjs +2 -0
- package/dist/{MemoryScanSession-zfoVZJB0.mjs → MemoryScanSession-BZ2A9Ph1.mjs} +1 -1
- package/dist/MemoryScanner-DAxsq7Sx.mjs +1 -0
- package/dist/NativeMemoryManager.impl-BIJzXMqH.mjs +1 -0
- package/dist/{NativeMemoryManager.utils-Bu8srMEF.mjs → NativeMemoryManager.utils-CMoul2an.mjs} +1 -1
- package/dist/PEAnalyzer-CB_kaTis.mjs +1 -0
- package/dist/PackerDeobfuscator-BpwGjxDL.mjs +7 -0
- package/dist/PointerChainEngine-B6SYv6ZM.mjs +1 -0
- package/dist/ProcessRegistry-C5W1Tkn9.mjs +1 -0
- package/dist/QuickJSSandbox-CIde-jzG.mjs +299 -0
- package/dist/{ResponseBuilder-nPXl_khE.mjs → ResponseBuilder-BLicSCjn.mjs} +1 -1
- package/dist/ReverseEvidenceGraph-DJzk0GQz.mjs +2 -0
- package/dist/ServerRuntimeState-DGXNv8Ji.mjs +1 -0
- package/dist/Speedhack-MGoeq1ZS.mjs +1 -0
- package/dist/StructureAnalyzer-CCTWAXR3.mjs +2 -0
- package/dist/ToolHandlerMap-C40EmuLT.mjs +1 -0
- package/dist/{ToolProbe-DQiREmNp.mjs → ToolProbe-B02GC3ZY.mjs} +1 -1
- package/dist/ToolRegistry-CzqQxFqf.mjs +1 -0
- package/dist/{ToolRouter.policy-UKBlFlbh.mjs → ToolRouter.policy-Bgb3S8jc.mjs} +2 -2
- package/dist/TraceRecorder-BfeCTQUj.mjs +407 -0
- package/dist/VMDeobfuscator-BHtkV850.mjs +1 -0
- package/dist/Win32API-G7QPyckq.mjs +1 -0
- package/dist/{Win32Debug-DwF8mQGm.mjs → Win32Debug-6yzmtv5b.mjs} +1 -1
- package/dist/allocation-track-CiI-CnaI.mjs +1 -0
- package/dist/analysis-CojUzwX-.mjs +27 -0
- package/dist/{antidebug-CsnpOR9z.mjs → antidebug-CgU84TE1.mjs} +1 -1
- package/dist/apk-DrPBsOq8.mjs +1 -0
- package/dist/artifactRetention-Bk6fW2uF.mjs +1 -0
- package/dist/artifacts-Bx9GLx4J.mjs +1 -0
- package/dist/ast-bridge-BlOrmVAv.mjs +1 -0
- package/dist/ast-utils-B9E5k_v1.mjs +1 -0
- package/dist/binary-instrument-DiE1BP0x.mjs +12 -0
- package/dist/boringssl-inspector-C6M3sOga.mjs +2 -0
- package/dist/browser-QDUu5ML9.mjs +29 -0
- package/dist/{canvas-396ieNv5.mjs → canvas-g5kmLdY-.mjs} +1098 -24
- package/dist/{capabilities-L1ax5EHS.mjs → capabilities-DwzyxL2w.mjs} +1 -1
- package/dist/cdp-session-Dy4OwMOP.mjs +1 -0
- package/dist/collector-Cld4i-E4.mjs +1 -0
- package/dist/config-5ODJ3Aj0.mjs +3 -0
- package/dist/constants-nvsLpSri.mjs +1 -0
- package/dist/coordination-C6y2gM9O.mjs +98 -0
- package/dist/coverage-and-block--cWjjEe5.mjs +1 -0
- package/dist/dart-inspector-D4IKxZ6u.mjs +0 -0
- package/dist/debugger-C2SpiXoO.mjs +1 -0
- package/dist/definitions-0mtilYzG.mjs +1 -0
- package/dist/definitions-9csunmeX.mjs +1 -0
- package/dist/definitions-B11MudW_.mjs +1 -0
- package/dist/definitions-BKpRDjcI.mjs +1 -0
- package/dist/definitions-BXE3H4re.mjs +1 -0
- package/dist/definitions-BlPHe5DX.mjs +1 -0
- package/dist/definitions-Bob4XMxI.mjs +27 -0
- package/dist/definitions-BpIQN2nm.mjs +1 -0
- package/dist/{definitions-Ym8niHDb.mjs → definitions-BvolWeSu.mjs} +1 -1
- package/dist/definitions-C-6j3Ejl.mjs +1 -0
- package/dist/definitions-C-AdFfFu.mjs +1 -0
- package/dist/definitions-CArdw_9T.mjs +1 -0
- package/dist/definitions-CCvIcRrT.mjs +1 -0
- package/dist/definitions-CJPE5PIl.mjs +1 -0
- package/dist/definitions-CbqeW06u.mjs +1 -0
- package/dist/definitions-Cexmkypg.mjs +1 -0
- package/dist/definitions-D1dxl8qt.mjs +1 -0
- package/dist/definitions-D3uT-ZbU.mjs +1 -0
- package/dist/definitions-DtOY5iUc.mjs +1 -0
- package/dist/{definitions-Cv5r8xwq.mjs → definitions-DvrYdDCJ2.mjs} +1 -1
- package/dist/definitions-ihxOqOC4.mjs +1 -0
- package/dist/deopt-trace-qnAcC931.mjs +17 -0
- package/dist/disasm-DoxSucGp.mjs +1 -0
- package/dist/dumpsys-parser-Du-5ruEe.mjs +2 -0
- package/dist/encoding-UMtwgy4M.mjs +2 -0
- package/dist/ensure-browser-core-BP70x0TB.mjs +285 -0
- package/dist/factory-BeND77hf.mjs +2 -0
- package/dist/graphql-CF7QKJME.mjs +68 -0
- package/dist/grpc-raw-Dp7ps2sv.mjs +1 -0
- package/dist/handlers--qCl9vNv.mjs +1 -0
- package/dist/handlers-BHIu1LqA.mjs +1 -0
- package/dist/{handlers-DB6xVVWq.mjs → handlers-BQ4K8Jbr.mjs} +1 -1
- package/dist/handlers-BxQv-wtf.mjs +8 -0
- package/dist/handlers-ByYG27-5.mjs +1 -0
- package/dist/handlers-C0I9-BtX.mjs +5 -0
- package/dist/{handlers-CWKBBjai.mjs → handlers-CL0Iokmw.mjs} +1 -1
- package/dist/handlers-CNbhIdSK.mjs +4 -0
- package/dist/handlers-CnTTSJFs.mjs +109 -0
- package/dist/handlers-CoDx6akJ2.mjs +49 -0
- package/dist/{handlers-BbLxNbbT.mjs → handlers-DASJI0Pn.mjs} +1 -1
- package/dist/handlers-DRKMaA-_.mjs +74 -0
- package/dist/handlers-Dalu0olz.mjs +2 -0
- package/dist/handlers-KY0g31ny.mjs +9 -0
- package/dist/handlers-oGo60aVv.mjs +1 -0
- package/dist/handlers.impl-BTXLw6Qc.mjs +1 -0
- package/dist/heap-sampling-BqdiU-5j.mjs +1 -0
- package/dist/{hooks-DPouiS7I.mjs → hooks-COK3t5rT.mjs} +51 -32
- package/dist/index.mjs +11 -11
- package/dist/logger-BGCcd-jJ.mjs +1 -0
- package/dist/macro-nUYUjKNZ.mjs +2 -0
- package/dist/maintenance-CfnE7ZKU.mjs +4 -0
- package/dist/manifest-7EOTUc0D.mjs +1 -0
- package/dist/manifest-B5ujuQmf.mjs +1 -0
- package/dist/manifest-BErXl3zn.mjs +1 -0
- package/dist/manifest-BKA-mD3J.mjs +1 -0
- package/dist/manifest-BUXj23bX.mjs +1 -0
- package/dist/manifest-BfXt9cau.mjs +1 -0
- package/dist/manifest-Bx-tpURK.mjs +1 -0
- package/dist/manifest-C0owVAdq.mjs +1 -0
- package/dist/manifest-C5XqYc9o.mjs +1 -0
- package/dist/manifest-CVKzLjsA.mjs +1 -0
- package/dist/manifest-CaeFjdhj.mjs +1 -0
- package/dist/manifest-CegBgip0.mjs +1 -0
- package/dist/manifest-CoJHqlgS.mjs +1 -0
- package/dist/manifest-D0dbtDqd.mjs +1 -0
- package/dist/manifest-D5Gr8ujd.mjs +12 -0
- package/dist/manifest-D82z-5og.mjs +1 -0
- package/dist/manifest-DA2afIwh.mjs +1 -0
- package/dist/manifest-DAbiFP5o.mjs +1 -0
- package/dist/manifest-DEY0s1O72.mjs +1 -0
- package/dist/manifest-DTOqNqiA.mjs +1 -0
- package/dist/manifest-DZ6ELNgX.mjs +1 -0
- package/dist/manifest-DjHkjddT.mjs +1 -0
- package/dist/manifest-DocA_itf2.mjs +1 -0
- package/dist/manifest-Dpnhvfq0.mjs +1 -0
- package/dist/manifest-DucPMG_a.mjs +1 -0
- package/dist/manifest-Dw5yYEac.mjs +1 -0
- package/dist/manifest-Ic_Cg66S.mjs +1 -0
- package/dist/manifest-JHaG6GMN.mjs +1 -0
- package/dist/manifest-QdkIzmYM.mjs +1 -0
- package/dist/manifest-YZqaCe25.mjs +1 -0
- package/dist/manifest-f0lUeXwq.mjs +1 -0
- package/dist/manifest-h-Ebisf8.mjs +1 -0
- package/dist/manifest-oOfTymBS.mjs +1 -0
- package/dist/manifest-qXqrO6KC.mjs +2 -0
- package/dist/mapsParser-DrJoeC0c.mjs +1 -0
- package/dist/modules-CC_ADmwi.mjs +333 -0
- package/dist/mojo-ipc-kVztXYw-.mjs +140 -0
- package/dist/native-D9ouskXO.mjs +961 -0
- package/dist/native-bridge-Dzd7hYoq.mjs +1 -0
- package/dist/network-C5Y-S87J.mjs +7 -0
- package/dist/one-gadget-CiWFE17F.mjs +1 -0
- package/dist/outputPaths-CHtELDyi.mjs +1 -0
- package/dist/parse-args-B6dwWc9k.mjs +1 -0
- package/dist/platform-BIXgJaM3.mjs +94 -0
- package/dist/process-aDIfLC0v.mjs +6 -0
- package/dist/proxy-DsHsQ1I4.mjs +2 -0
- package/dist/registry-7h8jJ9y9.mjs +1 -0
- package/dist/{registry-xB8Wgmyj.mjs → registry-DJDnkQW2.mjs} +1 -1
- package/dist/response-R8ghbZSb.mjs +1 -0
- package/dist/retry-policy-DtYv0kDi.mjs +1 -0
- package/dist/reverseEngineeringConfig-BhZLOa3C.mjs +1 -0
- package/dist/safeOutput-Dt4mfjXA.mjs +1 -0
- package/dist/{search-defaults-CJik67or.mjs → search-defaults-BBRJNAzC.mjs} +1 -1
- package/dist/server/search/EmbeddingWorker.d.mts +1 -0
- package/dist/server/search/EmbeddingWorker.mjs +1 -0
- package/dist/shared-BKtWZDGN.mjs +1 -0
- package/dist/sourcemap-2VIeVeKw.mjs +3 -0
- package/dist/streaming-DkpE3GGU.mjs +15 -0
- package/dist/syscall-DGZoYM_U.mjs +1 -0
- package/dist/transform-BJqsBC_-.mjs +105 -0
- package/dist/turbofan-graph-CbGHNVtl.mjs +1 -0
- package/dist/turbofan-inspect--NdCuYXi.mjs +23 -0
- package/dist/types-CWSvzmIh.mjs +1 -0
- package/dist/v8-inspector-CTJo08-K.mjs +297 -0
- package/dist/wasm-DX4Qm2Vs.mjs +235 -0
- package/dist/weakrefs-inspect-CnhaF-rN.mjs +57 -0
- package/dist/webgpu-D4-DxbxZ.mjs +6 -0
- package/dist/workflow-DHktRNF2.mjs +108 -0
- package/package.json +33 -27
- package/dist/AntiCheatDetector-CUpZBh5O.mjs +0 -1
- package/dist/CodeInjector-Btj9upnf.mjs +0 -1
- package/dist/ConsoleMonitor-DIjN5Afa.mjs +0 -306
- package/dist/DarwinAPI-BuMPGzHm.mjs +0 -1
- package/dist/ExtensionManager.tools-CIGOWViz.mjs +0 -1
- package/dist/FingerprintManager-BkDSsjjP.mjs +0 -1
- package/dist/HardwareBreakpoint-DMAMcPyB.mjs +0 -1
- package/dist/HeapAnalyzer-Yj348FYt.mjs +0 -1
- package/dist/InstrumentationSession-c5qZyp7d.mjs +0 -1
- package/dist/MCPServer.activation.ttl-CEGNBycZ.mjs +0 -1
- package/dist/MCPServer.search.helpers-Cs1JpKbu.mjs +0 -1
- package/dist/MemoryController-DjtgiING.mjs +0 -2
- package/dist/MemoryScanner-Dxd657li.mjs +0 -1
- package/dist/PEAnalyzer-CMu9Ua9T.mjs +0 -1
- package/dist/PointerChainEngine-CaSC1Mry.mjs +0 -1
- package/dist/ProcessRegistry-D5y1yuP2.mjs +0 -1
- package/dist/ReverseEvidenceGraph-BksOpsPs.mjs +0 -2
- package/dist/ServerRuntimeState-CgqBBwfd.mjs +0 -1
- package/dist/Speedhack-pwXTHxOY.mjs +0 -1
- package/dist/StructureAnalyzer-BseGzsSl.mjs +0 -2
- package/dist/ToolCatalog-DgmQXdsm.mjs +0 -1
- package/dist/ToolHandlerMap-7HWoIgQO.mjs +0 -1
- package/dist/ToolRegistry-eMZEBiR1.mjs +0 -1
- package/dist/TraceRecorder-B5ktv3nP.mjs +0 -272
- package/dist/VersionDetector-CmPJmaJg.mjs +0 -1
- package/dist/Win32API-DoP3MMHS.mjs +0 -1
- package/dist/WorkflowEngine-CldHG5b4.mjs +0 -1
- package/dist/analysis-C-ln0Brh.mjs +0 -6
- package/dist/artifactRetention-DkYKLOvi.mjs +0 -1
- package/dist/artifacts-D-4pSS_N.mjs +0 -1
- package/dist/binary-instrument-BeZ224mZ.mjs +0 -9
- package/dist/boringssl-inspector-ZOCkaipa.mjs +0 -2
- package/dist/browser-BUaB25bk.mjs +0 -11
- package/dist/collector-CB2syQEg.mjs +0 -1
- package/dist/constants-DMv3svps.mjs +0 -2
- package/dist/coordination-Dbohmj6D.mjs +0 -1
- package/dist/dart-inspector-LhEqRITQ.mjs +0 -0
- package/dist/debugger-CLzkObIO.mjs +0 -1
- package/dist/definitions-0hxnrDU72.mjs +0 -1
- package/dist/definitions-B3a9QC2t.mjs +0 -1
- package/dist/definitions-BOvju5t2.mjs +0 -1
- package/dist/definitions-CXj_cEVt.mjs +0 -1
- package/dist/definitions-Co6AvTjH.mjs +0 -1
- package/dist/definitions-DBYSxChX.mjs +0 -1
- package/dist/definitions-D_dTDX9B.mjs +0 -1
- package/dist/definitions-Db9t2ddh.mjs +0 -1
- package/dist/definitions-DbN2CjI2.mjs +0 -1
- package/dist/definitions-DlmmHmZc.mjs +0 -1
- package/dist/definitions-DnYpoGig.mjs +0 -1
- package/dist/definitions-DtZ6Ktx2.mjs +0 -1
- package/dist/definitions-DuIPS8gq.mjs +0 -1
- package/dist/definitions-DywfwPMb.mjs +0 -1
- package/dist/definitions-EGmqr85H.mjs +0 -1
- package/dist/definitions-Fetw_Cge.mjs +0 -26
- package/dist/definitions-LdkeuOeA.mjs +0 -1
- package/dist/definitions-cnG6tj17.mjs +0 -1
- package/dist/encoding-B4xZWErf.mjs +0 -2
- package/dist/ensure-browser-core-JHwDo5ql.mjs +0 -285
- package/dist/factory-BxNdBiZa.mjs +0 -1
- package/dist/graphql-GBWsZ9xC.mjs +0 -62
- package/dist/handlers-5nzR8B0a.mjs +0 -5
- package/dist/handlers-6iNsXOVT.mjs +0 -7
- package/dist/handlers-BZ8n6Hvf.mjs +0 -1
- package/dist/handlers-BbS4hssc.mjs +0 -4
- package/dist/handlers-CIKOP4aI.mjs +0 -2
- package/dist/handlers-Cmb6SoRC.mjs +0 -1
- package/dist/handlers-CrJsKnEI.mjs +0 -1
- package/dist/handlers-DOOCWUNR.mjs +0 -31
- package/dist/handlers-Z_B5aVaU.mjs +0 -54
- package/dist/handlers-gVscChvl.mjs +0 -1
- package/dist/handlers-xFvI9P_y.mjs +0 -1
- package/dist/handlers.impl-BsFTW6SD.mjs +0 -1
- package/dist/logger-CCikqqvj.mjs +0 -1
- package/dist/macro-p8kuJVcm.mjs +0 -2
- package/dist/maintenance-DAqADb6Z.mjs +0 -302
- package/dist/manifest-4lmM6MZR.mjs +0 -1
- package/dist/manifest-AxaxRSt6.mjs +0 -2
- package/dist/manifest-BIqRE1Qz.mjs +0 -1
- package/dist/manifest-Box-jWfr.mjs +0 -1
- package/dist/manifest-Bp33di0Q.mjs +0 -1
- package/dist/manifest-BvRX4nRP.mjs +0 -1
- package/dist/manifest-C6KoB1XE.mjs +0 -1
- package/dist/manifest-C7TdXCWY.mjs +0 -1
- package/dist/manifest-CM-n64K0.mjs +0 -1
- package/dist/manifest-CUokxCUN.mjs +0 -1
- package/dist/manifest-CWJS45iO.mjs +0 -1
- package/dist/manifest-Cdxdgo-D.mjs +0 -1
- package/dist/manifest-Cf6SmamD.mjs +0 -1
- package/dist/manifest-Cgxu2qdv.mjs +0 -1
- package/dist/manifest-CowGSURa2.mjs +0 -1
- package/dist/manifest-CsGIrh34.mjs +0 -1
- package/dist/manifest-CvDpVToN.mjs +0 -1
- package/dist/manifest-D8TL9RLE.mjs +0 -1
- package/dist/manifest-DIhtCBe6.mjs +0 -1
- package/dist/manifest-DJbruNOg.mjs +0 -1
- package/dist/manifest-DLGtZH-0.mjs +0 -1
- package/dist/manifest-DXHdPt2T.mjs +0 -1
- package/dist/manifest-Dg5ScOyW.mjs +0 -1
- package/dist/manifest-DzGoTS0R.mjs +0 -1
- package/dist/manifest-G2H52LKz.mjs +0 -131
- package/dist/manifest-P0Futrgb.mjs +0 -1
- package/dist/manifest-Qw7xgvjv.mjs +0 -1
- package/dist/manifest-W3qvVrP2.mjs +0 -1
- package/dist/manifest-dG6MuR1U.mjs +0 -1
- package/dist/manifest-nWXtgq5Y2.mjs +0 -1
- package/dist/manifest-vp1upSSq.mjs +0 -1
- package/dist/modules-DO3jXCgj.mjs +0 -333
- package/dist/mojo-ipc-Be-ccWrc.mjs +0 -9
- package/dist/native-g095qhpK.mjs +0 -961
- package/dist/network-Dvxm7eEI.mjs +0 -7
- package/dist/outputPaths-D2ddHrOJ.mjs +0 -2
- package/dist/parse-args-ngRrvF9e.mjs +0 -1
- package/dist/platform-DjWbuiF8.mjs +0 -93
- package/dist/process-Dq5I-KZW.mjs +0 -2
- package/dist/proxy-DPNgM7TE.mjs +0 -2
- package/dist/renderer-pid-7jbTR8f5.mjs +0 -1
- package/dist/response-B1RuVVfD.mjs +0 -1
- package/dist/sourcemap-DqEW15Ao.mjs +0 -1
- package/dist/streaming-Dbk4eStJ.mjs +0 -1
- package/dist/transform-D-peM3aO.mjs +0 -103
- package/dist/wasm-CZajRaad.mjs +0 -174
- package/dist/webcrack-phEfVt5y.mjs +0 -46
- package/dist/workflow-wkXb3x-U.mjs +0 -101
- /package/dist/{chunk-88NL7fhV.mjs → rolldown-runtime-88NL7fhV.mjs} +0 -0
|
@@ -1,4 +1,22 @@
|
|
|
1
|
-
import{t as e}from"./logger-
|
|
1
|
+
import{t as e}from"./logger-BGCcd-jJ.mjs";import{d as t,u as n}from"./ensure-browser-core-BP70x0TB.mjs";import{c as r,i,l as a,n as o,u as s}from"./parse-args-B6dwWc9k.mjs";import"./definitions-0mtilYzG.mjs";function c(e,t){if(t.maxMatches===void 0&&!t.unhookPredicate)return``;let n=typeof t.maxMatches==`number`?String(t.maxMatches):`undefined`,r=t.unhookPredicate?`__m.unhookPredicate = new Function('value', ${JSON.stringify(t.unhookPredicate)});`:``,i=JSON.stringify(e);return`(function(){
|
|
2
|
+
globalThis.__aiHookMetadata = globalThis.__aiHookMetadata || {};
|
|
3
|
+
var __m = globalThis.__aiHookMetadata[${i}] = globalThis.__aiHookMetadata[${i}] || {};
|
|
4
|
+
__m.matchCount = 0;
|
|
5
|
+
__m.maxMatches = ${n};
|
|
6
|
+
${r}
|
|
7
|
+
globalThis.__aiHookUnhookGuard = globalThis.__aiHookUnhookGuard || function(id, value){
|
|
8
|
+
var m = globalThis.__aiHookMetadata && globalThis.__aiHookMetadata[id];
|
|
9
|
+
if (!m) return false;
|
|
10
|
+
m.matchCount = (m.matchCount || 0) + 1;
|
|
11
|
+
if (typeof m.maxMatches === 'number' && m.matchCount >= m.maxMatches) {
|
|
12
|
+
m.enabled = false; m.unhookedAt = (typeof performance!=='undefined'?performance.now():Date.now()); return true;
|
|
13
|
+
}
|
|
14
|
+
if (typeof m.unhookPredicate === 'function') {
|
|
15
|
+
try { if (m.unhookPredicate(value)) { m.enabled = false; m.unhookedAt = (typeof performance!=='undefined'?performance.now():Date.now()); return true; } } catch(e) {}
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
};
|
|
19
|
+
})();`}var l=class{pageController;injectedHooks=new Map;constructor(e){this.pageController=e}hasAttachedTargetSession(){return this.pageController.hasAttachedTargetSession()}async evaluateInAttachedTarget(e){return await this.pageController.evaluateAttachedTarget(e,{returnByValue:!0,awaitPromise:!0})}async addPersistentScriptToManagedTargets(e,t){await this.pageController.addScriptToPageEvaluateOnNewDocument(t,{id:`ai-hook:${e}`}),await this.pageController.addPersistentScriptToManagedTargets(t,{id:`ai-hook:${e}`,evaluateNow:!0,targetTypes:[`page`,`iframe`]})}async handleAIHookInject(a){try{let o=s(a,`hookId`),l=s(a,`code`),u=r(a,`method`,`evaluate`),d=i(a,`maxMatches`),f=c(o,{maxMatches:d,unhookPredicate:r(a,`unhookPredicate`)}),p=f?`${f}\n${l}`:l;if(this.hasAttachedTargetSession())u===`evaluateOnNewDocument`?(await this.addPersistentScriptToManagedTargets(o,p),e.info(`Hook injected into attached target (evaluateOnNewDocument): ${o}`)):(await this.evaluateInAttachedTarget(p),e.info(`Hook injected into attached target (evaluate): ${o}`));else{let r=await this.pageController.getPage();u===`evaluateOnNewDocument`?(await n(r,p),e.info(`Hook injected (evaluateOnNewDocument): ${o}`)):(await t(r,p),e.info(`Hook injected (evaluate): ${o}`))}return this.injectedHooks.set(o,{code:p,injectionTime:Date.now()}),{content:[{type:`text`,text:JSON.stringify({success:!0,hookId:o,message:`Hook (: ${u})`,unhookGuard:f===``?null:{maxMatches:d??null,enabled:!0},injectionTime:new Date().toISOString()},null,2)}]}}catch(t){return e.error(`Hook injection failed`,t),{content:[{type:`text`,text:JSON.stringify({success:!1,error:t instanceof Error?t.message:String(t)},null,2)}]}}}async handleAIHookGetData(n){try{let e=s(n,`hookId`),r=this.hasAttachedTargetSession()?await this.evaluateInAttachedTarget(`(() => {
|
|
2
20
|
const hookId = ${JSON.stringify(e)};
|
|
3
21
|
const hooks = globalThis.__aiHooks;
|
|
4
22
|
if (!hooks?.[hookId]) {
|
|
@@ -10,7 +28,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
10
28
|
records: hooks[hookId],
|
|
11
29
|
totalRecords: hooks[hookId].length,
|
|
12
30
|
};
|
|
13
|
-
})()`):await t(await this.pageController.getPage(),e=>window.__aiHooks?.[e]?{hookId:e,metadata:window.__aiHookMetadata?.[e],records:window.__aiHooks[e],totalRecords:window.__aiHooks[e].length}:null,e);return
|
|
31
|
+
})()`):await t(await this.pageController.getPage(),e=>window.__aiHooks?.[e]?{hookId:e,metadata:window.__aiHookMetadata?.[e],records:window.__aiHooks[e],totalRecords:window.__aiHooks[e].length}:null,e);return r?{content:[{type:`text`,text:JSON.stringify({success:!0,...r},null,2)}]}:{content:[{type:`text`,text:JSON.stringify({success:!1,message:`Hook: ${e}`},null,2)}]}}catch(t){return e.error(`Failed to get hook data`,t),{content:[{type:`text`,text:JSON.stringify({success:!1,error:t instanceof Error?t.message:String(t)},null,2)}]}}}async handleAIHookList(n){try{let e=this.hasAttachedTargetSession()?await this.evaluateInAttachedTarget(`(() => {
|
|
14
32
|
const metadata = globalThis.__aiHookMetadata;
|
|
15
33
|
const hooks = globalThis.__aiHooks;
|
|
16
34
|
if (!metadata) {
|
|
@@ -21,7 +39,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
21
39
|
metadata: metadata[hookId],
|
|
22
40
|
recordCount: hooks?.[hookId]?.length || 0,
|
|
23
41
|
}));
|
|
24
|
-
})()`):await t(await this.pageController.getPage(),()=>window.__aiHookMetadata?Object.keys(window.__aiHookMetadata).map(e=>({hookId:e,metadata:window.__aiHookMetadata[e],recordCount:window.__aiHooks?.[e]?.length||0})):[]);return{content:[{type:`text`,text:JSON.stringify({success:!0,totalHooks:e.length,hooks:e},null,2)}]}}catch(t){return e.error(`Failed to list hooks`,t),{content:[{type:`text`,text:JSON.stringify({success:!1,error:t instanceof Error?t.message:String(t)},null,2)}]}}}async handleAIHookClear(n){try{let e=
|
|
42
|
+
})()`):await t(await this.pageController.getPage(),()=>window.__aiHookMetadata?Object.keys(window.__aiHookMetadata).map(e=>({hookId:e,metadata:window.__aiHookMetadata[e],recordCount:window.__aiHooks?.[e]?.length||0})):[]);return{content:[{type:`text`,text:JSON.stringify({success:!0,totalHooks:e.length,hooks:e},null,2)}]}}catch(t){return e.error(`Failed to list hooks`,t),{content:[{type:`text`,text:JSON.stringify({success:!1,error:t instanceof Error?t.message:String(t)},null,2)}]}}}async handleAIHookClear(n){try{let e=r(n,`hookId`);return e?(this.hasAttachedTargetSession()?await this.evaluateInAttachedTarget(`(() => {
|
|
25
43
|
const hookId = ${JSON.stringify(e)};
|
|
26
44
|
if (globalThis.__aiHooks?.[hookId]) {
|
|
27
45
|
globalThis.__aiHooks[hookId] = [];
|
|
@@ -34,14 +52,14 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
34
52
|
}
|
|
35
53
|
}
|
|
36
54
|
return true;
|
|
37
|
-
})()`):await t(await this.pageController.getPage(),()=>{if(window.__aiHooks)for(let e in window.__aiHooks)window.__aiHooks[e]=[]}),{content:[{type:`text`,text:JSON.stringify({success:!0,message:`Hook`},null,2)}]})}catch(t){return e.error(`Failed to clear hook data`,t),{content:[{type:`text`,text:JSON.stringify({success:!1,error:t instanceof Error?t.message:String(t)},null,2)}]}}}async handleAIHookToggle(n){try{let e=
|
|
55
|
+
})()`):await t(await this.pageController.getPage(),()=>{if(window.__aiHooks)for(let e in window.__aiHooks)window.__aiHooks[e]=[]}),{content:[{type:`text`,text:JSON.stringify({success:!0,message:`Hook`},null,2)}]})}catch(t){return e.error(`Failed to clear hook data`,t),{content:[{type:`text`,text:JSON.stringify({success:!1,error:t instanceof Error?t.message:String(t)},null,2)}]}}}async handleAIHookToggle(n){try{let e=s(n,`hookId`),r=o(n,`enabled`);return this.hasAttachedTargetSession()?await this.evaluateInAttachedTarget(`(() => {
|
|
38
56
|
const hookId = ${JSON.stringify(e)};
|
|
39
|
-
const enabled = ${JSON.stringify(
|
|
57
|
+
const enabled = ${JSON.stringify(r)};
|
|
40
58
|
if (globalThis.__aiHookMetadata?.[hookId]) {
|
|
41
59
|
globalThis.__aiHookMetadata[hookId].enabled = enabled;
|
|
42
60
|
}
|
|
43
61
|
return true;
|
|
44
|
-
})()`):await t(await this.pageController.getPage(),(e,t)=>{window.__aiHookMetadata?.[e]&&(window.__aiHookMetadata[e].enabled=t)},e,
|
|
62
|
+
})()`):await t(await this.pageController.getPage(),(e,t)=>{window.__aiHookMetadata?.[e]&&(window.__aiHookMetadata[e].enabled=t)},e,r),{content:[{type:`text`,text:JSON.stringify({success:!0,hookId:e,enabled:r,message:`Hook`},null,2)}]}}catch(t){return e.error(`Failed to toggle hook`,t),{content:[{type:`text`,text:JSON.stringify({success:!1,error:t instanceof Error?t.message:String(t)},null,2)}]}}}async handleAIHookExport(n){try{let e=r(n,`hookId`),i=r(n,`format`,`json`),a=this.hasAttachedTargetSession()?await this.evaluateInAttachedTarget(`(() => {
|
|
45
63
|
const hookId = ${JSON.stringify(e)};
|
|
46
64
|
if (hookId) {
|
|
47
65
|
return {
|
|
@@ -54,15 +72,16 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
54
72
|
metadata: globalThis.__aiHookMetadata || {},
|
|
55
73
|
records: globalThis.__aiHooks || {},
|
|
56
74
|
};
|
|
57
|
-
})()`):await t(await this.pageController.getPage(),e=>e?{hookId:e,metadata:window.__aiHookMetadata?.[e],records:window.__aiHooks?.[e]||[]}:{metadata:window.__aiHookMetadata||{},records:window.__aiHooks||{}},e);return{content:[{type:`text`,text:JSON.stringify({success:!0,format:
|
|
75
|
+
})()`):await t(await this.pageController.getPage(),e=>e?{hookId:e,metadata:window.__aiHookMetadata?.[e],records:window.__aiHooks?.[e]||[]}:{metadata:window.__aiHookMetadata||{},records:window.__aiHooks||{}},e);return{content:[{type:`text`,text:JSON.stringify({success:!0,format:i,data:a,exportTime:new Date().toISOString()},null,2)}]}}catch(t){return e.error(`Failed to export hook data`,t),{content:[{type:`text`,text:JSON.stringify({success:!1,error:t instanceof Error?t.message:String(t)},null,2)}]}}}async handleAIHook(e){let t=String(e.action??``);switch(t){case`inject`:return this.handleAIHookInject(e);case`get_data`:return this.handleAIHookGetData(e);case`list`:return this.handleAIHookList(e);case`clear`:return this.handleAIHookClear(e);case`toggle`:return this.handleAIHookToggle(e);case`export`:return this.handleAIHookExport(e);default:return{content:[{type:`text`,text:JSON.stringify({success:!1,error:`Unknown action: ${t}. Valid actions: inject, get_data, list, clear, toggle, export`})}]}}}};function u(e,t,n,r,i){let a=n?`const __stack = new Error().stack?.split('\\n').slice(1,4).join(' | ') || '';`:`const __stack = '';`,o=r?`console.log(__msg + (__stack ? ' | Stack: ' + __stack : ''));`:``;return`
|
|
58
76
|
(function() {
|
|
59
77
|
if (window.__hookPresets === undefined) window.__hookPresets = {};
|
|
60
78
|
if (window.__hookPresets['${e}']) return;
|
|
61
|
-
${
|
|
79
|
+
${i?`const __mutateReturn = function(__result) { return (${i}); };`:``}
|
|
80
|
+
${t.replace(/\{\{STACK_CODE\}\}/g,a).replace(/\{\{LOG_FN\}\}/g,o)}
|
|
62
81
|
window.__hookPresets['${e}'] = true;
|
|
63
82
|
window.__aiHooks = window.__aiHooks || {};
|
|
64
83
|
window.__aiHooks['preset-${e}'] = window.__aiHooks['preset-${e}'] || [];
|
|
65
|
-
})();`}const
|
|
84
|
+
})();`}const d={eval:{description:` Hook eval() to capture dynamic code execution`,buildCode:(e,t)=>u(`eval`,`
|
|
66
85
|
const _orig = window.eval;
|
|
67
86
|
window.eval = function(code) {
|
|
68
87
|
{{STACK_CODE}}
|
|
@@ -70,7 +89,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
70
89
|
{{LOG_FN}}
|
|
71
90
|
window.__aiHooks['preset-eval'].push({ code: String(code).substring(0, 500), stack: __stack, ts: Date.now() });
|
|
72
91
|
return _orig.call(this, code);
|
|
73
|
-
};`,e,t)},"function-constructor":{description:` Hook new Function() to capture dynamic function creation`,buildCode:(e,t)=>
|
|
92
|
+
};`,e,t)},"function-constructor":{description:` Hook new Function() to capture dynamic function creation`,buildCode:(e,t)=>u(`function-constructor`,`
|
|
74
93
|
const _orig = Function;
|
|
75
94
|
window.Function = function(...args) {
|
|
76
95
|
{{STACK_CODE}}
|
|
@@ -84,7 +103,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
84
103
|
});
|
|
85
104
|
return _orig(...args);
|
|
86
105
|
};
|
|
87
|
-
window.Function.prototype = _orig.prototype;`,e,t)},"atob-btoa":{description:` Hook atob/btoa to capture Base64 encode/decode operations`,buildCode:(e,t)=>
|
|
106
|
+
window.Function.prototype = _orig.prototype;`,e,t)},"atob-btoa":{description:` Hook atob/btoa to capture Base64 encode/decode operations`,buildCode:(e,t)=>u(`atob-btoa`,`
|
|
88
107
|
const _atob = window.atob.bind(window);
|
|
89
108
|
const _btoa = window.btoa.bind(window);
|
|
90
109
|
window.atob = function(s) {
|
|
@@ -116,7 +135,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
116
135
|
ts: Date.now(),
|
|
117
136
|
});
|
|
118
137
|
return result;
|
|
119
|
-
};`,e,t)},"crypto-subtle":{description:` Hook crypto.subtle.encrypt/decrypt to intercept WebCrypto operations`,buildCode:(e,t)=>
|
|
138
|
+
};`,e,t)},"crypto-subtle":{description:` Hook crypto.subtle.encrypt/decrypt to intercept WebCrypto operations`,buildCode:(e,t)=>u(`crypto-subtle`,`
|
|
120
139
|
if (window.crypto && window.crypto.subtle) {
|
|
121
140
|
const _enc = window.crypto.subtle.encrypt.bind(window.crypto.subtle);
|
|
122
141
|
const _dec = window.crypto.subtle.decrypt.bind(window.crypto.subtle);
|
|
@@ -146,7 +165,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
146
165
|
});
|
|
147
166
|
return _dec(algo, key, data);
|
|
148
167
|
};
|
|
149
|
-
}`,e,t)},"json-stringify":{description:` Hook JSON.stringify/parse to capture serialization activity`,buildCode:(e,t)=>
|
|
168
|
+
}`,e,t)},"json-stringify":{description:` Hook JSON.stringify/parse to capture serialization activity`,buildCode:(e,t)=>u(`json-stringify`,`
|
|
150
169
|
const _stringify = JSON.stringify;
|
|
151
170
|
const _parse = JSON.parse;
|
|
152
171
|
JSON.stringify = function(v, r, s) {
|
|
@@ -176,7 +195,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
176
195
|
ts: Date.now(),
|
|
177
196
|
});
|
|
178
197
|
return result;
|
|
179
|
-
};`,e,t)},"object-defineproperty":{description:` Hook Object.defineProperty to monitor property definitions`,buildCode:(e,t)=>
|
|
198
|
+
};`,e,t)},"object-defineproperty":{description:` Hook Object.defineProperty to monitor property definitions`,buildCode:(e,t)=>u(`object-defineproperty`,`
|
|
180
199
|
const _define = Object.defineProperty;
|
|
181
200
|
Object.defineProperty = function(obj, prop, descriptor) {
|
|
182
201
|
{{STACK_CODE}}
|
|
@@ -190,7 +209,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
190
209
|
ts: Date.now(),
|
|
191
210
|
});
|
|
192
211
|
return _define(obj, prop, descriptor);
|
|
193
|
-
};`,e,t)},settimeout:{description:` Hook setTimeout to capture timer callbacks and delays`,buildCode:(e,t)=>
|
|
212
|
+
};`,e,t)},settimeout:{description:` Hook setTimeout to capture timer callbacks and delays`,buildCode:(e,t)=>u(`settimeout`,`
|
|
194
213
|
const _orig = window.setTimeout;
|
|
195
214
|
window.setTimeout = function(fn, delay, ...args) {
|
|
196
215
|
{{STACK_CODE}}
|
|
@@ -199,7 +218,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
199
218
|
{{LOG_FN}}
|
|
200
219
|
window.__aiHooks['preset-settimeout'].push({ delay, fn: fnStr, stack: __stack, ts: Date.now() });
|
|
201
220
|
return _orig(fn, delay, ...args);
|
|
202
|
-
};`,e,t)},setinterval:{description:` Hook setInterval to capture repeating timer callbacks`,buildCode:(e,t)=>
|
|
221
|
+
};`,e,t)},setinterval:{description:` Hook setInterval to capture repeating timer callbacks`,buildCode:(e,t)=>u(`setinterval`,`
|
|
203
222
|
const _orig = window.setInterval;
|
|
204
223
|
window.setInterval = function(fn, delay, ...args) {
|
|
205
224
|
{{STACK_CODE}}
|
|
@@ -208,7 +227,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
208
227
|
{{LOG_FN}}
|
|
209
228
|
window.__aiHooks['preset-setinterval'].push({ delay, fn: fnStr, stack: __stack, ts: Date.now() });
|
|
210
229
|
return _orig(fn, delay, ...args);
|
|
211
|
-
};`,e,t)},addeventlistener:{description:` Hook addEventListener to trace event listener registrations`,buildCode:(e,t)=>
|
|
230
|
+
};`,e,t)},addeventlistener:{description:` Hook addEventListener to trace event listener registrations`,buildCode:(e,t)=>u(`addeventlistener`,`
|
|
212
231
|
const _orig = EventTarget.prototype.addEventListener;
|
|
213
232
|
EventTarget.prototype.addEventListener = function(type, listener, options) {
|
|
214
233
|
{{STACK_CODE}}
|
|
@@ -222,7 +241,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
222
241
|
ts: Date.now(),
|
|
223
242
|
});
|
|
224
243
|
return _orig.call(this, type, listener, options);
|
|
225
|
-
};`,e,t)},postmessage:{description:` Hook postMessage to capture cross-origin and iframe messages`,buildCode:(e,t)=>
|
|
244
|
+
};`,e,t)},postmessage:{description:` Hook postMessage to capture cross-origin and iframe messages`,buildCode:(e,t)=>u(`postmessage`,`
|
|
226
245
|
const _orig = window.postMessage.bind(window);
|
|
227
246
|
window.postMessage = function(data, origin, transfer) {
|
|
228
247
|
{{STACK_CODE}}
|
|
@@ -245,7 +264,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
245
264
|
data: JSON.stringify(e.data||{}).substring(0,300),
|
|
246
265
|
ts: Date.now(),
|
|
247
266
|
});
|
|
248
|
-
});`,e,t)},webassembly:{description:` Hook WebAssembly.instantiate/compile to detect WASM module loading`,buildCode:(e,t)=>
|
|
267
|
+
});`,e,t)},webassembly:{description:` Hook WebAssembly.instantiate/compile to detect WASM module loading`,buildCode:(e,t)=>u(`webassembly`,`
|
|
249
268
|
if (typeof WebAssembly !== 'undefined') {
|
|
250
269
|
const _inst = WebAssembly.instantiate;
|
|
251
270
|
WebAssembly.instantiate = function(bufferSource, importObject) {
|
|
@@ -256,7 +275,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
256
275
|
window.__aiHooks['preset-webassembly'].push({ fn:'instantiate', size, stack: __stack, ts: Date.now() });
|
|
257
276
|
return _inst(bufferSource, importObject);
|
|
258
277
|
};
|
|
259
|
-
}`,e,t)},proxy:{description:` Hook Proxy constructor to detect proxy-based anti-debugging`,buildCode:(e,t)=>
|
|
278
|
+
}`,e,t)},proxy:{description:` Hook Proxy constructor to detect proxy-based anti-debugging`,buildCode:(e,t)=>u(`proxy`,`
|
|
260
279
|
const _Proxy = window.Proxy;
|
|
261
280
|
window.Proxy = function(target, handler) {
|
|
262
281
|
{{STACK_CODE}}
|
|
@@ -272,7 +291,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
272
291
|
return new _Proxy(target, handler);
|
|
273
292
|
};
|
|
274
293
|
window.Proxy.prototype = _Proxy.prototype;
|
|
275
|
-
window.Proxy.revocable = _Proxy.revocable;`,e,t)},reflect:{description:` Hook Reflect.apply to capture indirect function calls`,buildCode:(e,t)=>
|
|
294
|
+
window.Proxy.revocable = _Proxy.revocable;`,e,t)},reflect:{description:` Hook Reflect.apply to capture indirect function calls`,buildCode:(e,t)=>u(`reflect`,`
|
|
276
295
|
const _apply = Reflect.apply;
|
|
277
296
|
Reflect.apply = function(target, thisArg, args) {
|
|
278
297
|
{{STACK_CODE}}
|
|
@@ -286,7 +305,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
286
305
|
ts: Date.now(),
|
|
287
306
|
});
|
|
288
307
|
return _apply(target, thisArg, args);
|
|
289
|
-
};`,e,t)},"history-pushstate":{description:` Hook history.pushState/replaceState to trace SPA navigation`,buildCode:(e,t)=>
|
|
308
|
+
};`,e,t)},"history-pushstate":{description:` Hook history.pushState/replaceState to trace SPA navigation`,buildCode:(e,t)=>u(`history-pushstate`,`
|
|
290
309
|
const _push = history.pushState.bind(history);
|
|
291
310
|
const _replace = history.replaceState.bind(history);
|
|
292
311
|
history.pushState = function(state, title, url) {
|
|
@@ -316,7 +335,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
316
335
|
ts: Date.now(),
|
|
317
336
|
});
|
|
318
337
|
return _replace(state, title, url);
|
|
319
|
-
};`,e,t)},"location-href":{description:` Hook location.href setter to intercept URL redirects`,buildCode:(e,t)=>
|
|
338
|
+
};`,e,t)},"location-href":{description:` Hook location.href setter to intercept URL redirects`,buildCode:(e,t)=>u(`location-href`,`
|
|
320
339
|
const _desc = Object.getOwnPropertyDescriptor(window.location, 'href') ||
|
|
321
340
|
Object.getOwnPropertyDescriptor(Location.prototype, 'href');
|
|
322
341
|
if (_desc && _desc.set) {
|
|
@@ -332,7 +351,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
332
351
|
},
|
|
333
352
|
configurable: true,
|
|
334
353
|
});
|
|
335
|
-
}`,e,t)},"navigator-useragent":{description:` Hook navigator.userAgent getter to detect UA fingerprinting`,buildCode:(e,t)=>
|
|
354
|
+
}`,e,t)},"navigator-useragent":{description:` Hook navigator.userAgent getter to detect UA fingerprinting`,buildCode:(e,t)=>u(`navigator-useragent`,`
|
|
336
355
|
const _desc = Object.getOwnPropertyDescriptor(Navigator.prototype, 'userAgent');
|
|
337
356
|
if (_desc && _desc.get) {
|
|
338
357
|
const _origGet = _desc.get;
|
|
@@ -352,7 +371,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
352
371
|
},
|
|
353
372
|
configurable: true,
|
|
354
373
|
});
|
|
355
|
-
}`,e,t)},eventsource:{description:` Hook EventSource to capture SSE connections`,buildCode:(e,t)=>
|
|
374
|
+
}`,e,t)},eventsource:{description:` Hook EventSource to capture SSE connections`,buildCode:(e,t)=>u(`eventsource`,`
|
|
356
375
|
if (typeof EventSource !== 'undefined') {
|
|
357
376
|
const _ES = EventSource;
|
|
358
377
|
window.EventSource = function(url, opts) {
|
|
@@ -363,7 +382,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
363
382
|
return new _ES(url, opts);
|
|
364
383
|
};
|
|
365
384
|
window.EventSource.prototype = _ES.prototype;
|
|
366
|
-
}`,e,t)},"window-open":{description:` Hook window.open to capture popup and new tab creation`,buildCode:(e,t)=>
|
|
385
|
+
}`,e,t)},"window-open":{description:` Hook window.open to capture popup and new tab creation`,buildCode:(e,t)=>u(`window-open`,`
|
|
367
386
|
const _orig = window.open.bind(window);
|
|
368
387
|
window.open = function(url, target, features) {
|
|
369
388
|
{{STACK_CODE}}
|
|
@@ -377,7 +396,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
377
396
|
ts: Date.now(),
|
|
378
397
|
});
|
|
379
398
|
return _orig(url, target, features);
|
|
380
|
-
};`,e,t)},mutationobserver:{description:` Hook MutationObserver to track dynamic DOM mutation watchers`,buildCode:(e,t)=>
|
|
399
|
+
};`,e,t)},mutationobserver:{description:` Hook MutationObserver to track dynamic DOM mutation watchers`,buildCode:(e,t)=>u(`mutationobserver`,`
|
|
381
400
|
const _MO = MutationObserver;
|
|
382
401
|
window.MutationObserver = function(callback) {
|
|
383
402
|
{{STACK_CODE}}
|
|
@@ -386,7 +405,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
386
405
|
window.__aiHooks['preset-mutationobserver'].push({ stack: __stack, ts: Date.now() });
|
|
387
406
|
return new _MO(callback);
|
|
388
407
|
};
|
|
389
|
-
window.MutationObserver.prototype = _MO.prototype;`,e,t)},formdata:{description:` Hook FormData.append to capture form data before submission`,buildCode:(e,t)=>
|
|
408
|
+
window.MutationObserver.prototype = _MO.prototype;`,e,t)},formdata:{description:` Hook FormData.append to capture form data before submission`,buildCode:(e,t)=>u(`formdata`,`
|
|
390
409
|
const _orig = FormData.prototype.append;
|
|
391
410
|
FormData.prototype.append = function(name, value, filename) {
|
|
392
411
|
{{STACK_CODE}}
|
|
@@ -400,7 +419,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
400
419
|
ts: Date.now(),
|
|
401
420
|
});
|
|
402
421
|
return _orig.call(this, name, value, filename);
|
|
403
|
-
};`,e,t)}},
|
|
422
|
+
};`,e,t)}},f={"anti-debug-bypass":{description:` Block anti-debugging: setInterval/setTimeout debugger traps, console.clear spam, timing attacks (performance.now freeze), outerWidth/outerHeight devtools detection`,buildCode:(e,t)=>u(`anti-debug-bypass`,`
|
|
404
423
|
window.__aiHooks['preset-anti-debug-bypass'] = window.__aiHooks['preset-anti-debug-bypass'] || [];
|
|
405
424
|
// 1. Block setInterval/setTimeout containing debugger/devtools
|
|
406
425
|
const _si = window.setInterval;
|
|
@@ -444,7 +463,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
444
463
|
// 4. Fix outerWidth/outerHeight DevTools size detection
|
|
445
464
|
Object.defineProperty(window, 'outerWidth', { get: function() { return window.innerWidth; }, configurable: true });
|
|
446
465
|
Object.defineProperty(window, 'outerHeight',
|
|
447
|
-
{ get: function() { return window.innerHeight; }, configurable: true });`,e,t)},"crypto-key-capture":{description:` Force extractable:true on all WebCrypto importKey calls and capture plaintext/ciphertext + key material for encrypt/decrypt/sign/verify`,buildCode:(e,t)=>
|
|
466
|
+
{ get: function() { return window.innerHeight; }, configurable: true });`,e,t)},"crypto-key-capture":{description:` Force extractable:true on all WebCrypto importKey calls and capture plaintext/ciphertext + key material for encrypt/decrypt/sign/verify`,buildCode:(e,t)=>u(`crypto-key-capture`,`
|
|
448
467
|
if (window.crypto && window.crypto.subtle) {
|
|
449
468
|
const _subtle = window.crypto.subtle;
|
|
450
469
|
const _importKey = _subtle.importKey.bind(_subtle);
|
|
@@ -537,7 +556,7 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
537
556
|
});
|
|
538
557
|
return result;
|
|
539
558
|
};
|
|
540
|
-
}`,e,t)},"webassembly-full":{description:` Hook WebAssembly.instantiate to log all import calls, export names, and memory creation`,buildCode:(e,t)=>
|
|
559
|
+
}`,e,t)},"webassembly-full":{description:` Hook WebAssembly.instantiate to log all import calls, export names, and memory creation`,buildCode:(e,t)=>u(`webassembly-full`,`
|
|
541
560
|
if (typeof WebAssembly !== 'undefined') {
|
|
542
561
|
const _inst = WebAssembly.instantiate;
|
|
543
562
|
WebAssembly.instantiate = async function(bufferSource, importObject) {
|
|
@@ -597,4 +616,4 @@ import{t as e}from"./logger-CCikqqvj.mjs";import{d as t,u as n}from"./ensure-bro
|
|
|
597
616
|
return new _Memory(descriptor);
|
|
598
617
|
};
|
|
599
618
|
WebAssembly.Memory.prototype = _Memory.prototype;
|
|
600
|
-
}`,e,t)}},
|
|
619
|
+
}`,e,t)}},p={...d,...f},m=Object.entries(p).map(([e,t])=>({id:e,description:t.description}));var h=class{pageController;constructor(e){this.pageController=e}async handleHookPreset(t){try{let n=this.buildCustomPresetMap(t),i={...p,...n},s=[...m,...Object.entries(n).map(([e,t])=>({id:e,description:`${t.description} (custom)`}))];if(t.listPresets===!0)return{content:[{type:`text`,text:JSON.stringify({success:!0,totalPresets:s.length,presets:s},null,2)}]};let c=o(t,`captureStack`,!1),l=o(t,`logToConsole`,!0),u=r(t,`method`,`evaluate`),d=[];if(t.preset)d=[r(t,`preset`)];else if(Array.isArray(t.presets))d=a(t,`presets`);else return{content:[{type:`text`,text:JSON.stringify({success:!1,error:` Provide either preset (single) or presets (multiple), or set listPresets=true to list available presets`},null,2)}]};let f=d.filter(e=>!i[e]);if(f.length>0)return{content:[{type:`text`,text:JSON.stringify({success:!1,error:`: ${f.join(`, `)}`,availablePresets:s.map(e=>e.id)},null,2)}]};let h=await this.pageController.getPage(),g=[],_=[];for(let t of d)try{let n=i[t].buildCode(c,l);u===`evaluateOnNewDocument`?await h.evaluateOnNewDocument(n):await h.evaluate(n),g.push(t),e.info(` Hook preset injected: ${t}`)}catch(n){let r=n instanceof Error?n.message:String(n);_.push({preset:t,error:r}),e.error(` Failed to inject preset ${t}:`,n)}return{content:[{type:`text`,text:JSON.stringify({success:_.length===0,injected:g,failed:_,method:u,captureStack:c,message:` ${g.length}/${d.length} Hook`,usage:` ai_hook_get_data(hookId: "preset-<>") `},null,2)}]}}catch(t){return e.error(`Hook preset injection failed`,t),{content:[{type:`text`,text:JSON.stringify({success:!1,error:t instanceof Error?t.message:String(t)},null,2)}]}}}buildCustomPresetMap(e){let t=[];e.customTemplate&&typeof e.customTemplate==`object`&&t.push(e.customTemplate),Array.isArray(e.customTemplates)&&t.push(...e.customTemplates);let n={};for(let e of t){let t=e.id?.trim(),r=e.body?.trim();if(!t||!r)throw Error(`Each custom template requires non-empty id and body`);if(p[t])throw Error(`Custom template id conflicts with built-in preset: ${t}`);let i=e.mutateReturn?.trim()||void 0;n[t]={description:e.description?.trim()||`Custom inline preset: ${t}`,buildCode:(e,n)=>u(t,r,e,n,i)}}return n}};export{l as AIHookToolHandlers,h as HookPresetToolHandlers};
|