Jshookmcp
Search-first MCP server for JavaScript reverse engineering: 735 tools across 36 domains.
Connector by vmoranv · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/vmoranv-jshookmcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: debugging, browser-automation, security-scanning
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 335 read · 348 write · 55 delete · 28 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 766
Read from the source code; the running server may list different tools.
Read 335 · Look things up without changing anything.
adb_device_listadb_dumpsysadb_getpropadb_logcat_queryadb_package_summaryadb_root_checkai_suggest_exploitsandroid_runtime_dump_sessionapk_dex_intakeapk_manifest_queryapk_native_libs_listapk_packer_detect
Show 323 more tools
apk_packer_list_signaturesapk_signing_block_parseapk_static_triageasar_deobfuscateasar_repackasar_searchast_transform_beautifyast_transform_previewbinary_decodebinary_detect_formatbinary_encodebinary_entropy_analysisbinary_entropy_profilebinary_instrument_capabilitiesbinary_key_extractbinary_strings_extractblackbox_listbrowse_extension_registrybrowser_cdp_performance_metricsbrowser_codegen_stopbrowser_cpu_profile_stopbrowser_font_fingerprintbrowser_get_metricsbrowser_jsdom_parsebrowser_jsdom_querybrowser_jsdom_serializebrowser_list_cdp_targetsbrowser_list_tabsbrowser_list_workersbrowser_performance_observerbrowser_resource_timingbrowser_statusbrowser_trace_stopbrowser_worker_scriptscall_graph_analyzecamoufox_geolocationcanvas_dump_shaderscanvas_engine_fingerprintcanvas_inject_draw_hookcanvas_memory_invariantscanvas_pick_object_at_pointcanvas_scene_dumpcanvas_scene_searchcaptcha_detectcaptcha_solver_capabilitiescaptcha_waitconsole_get_exceptionsconsole_get_logscross_domain_capabilitiescross_domain_evidence_exportcross_domain_evidence_querycross_domain_evidence_statscross_domain_healthcross_domain_suggest_workflowcross_domain_synonymcrypto_comparecrypto_test_harnessdart_call_functiondart_call_graphdart_create_sessiondart_destroy_sessiondart_inspect_object_pooldart_list_functionsdart_load_snapshotdart_object_pool_dumpdart_pc_descriptorsdart_smi_scandart_snapshot_header_parsedart_strings_extractdart_symbolizedart_trace_executiondart_version_fingerprintdebugger_capture_hitdebugger_disassembledebugger_get_paused_statedebugger_wait_for_pauseddescribe_tooldetect_cryptodetect_obfuscationdex_scan_filediff_heap_snapshotsdoctor_environmentelectron_check_fuseselectron_debug_statuselectron_scan_userdataelectron_verify_integrityelectron_verify_signatureevidence_chainevidence_exportevidence_queryexploit_analyze_mitigationsexploit_cache_statsexploit_calculate_offsetsexploit_discover_one_gadgetexploit_find_gadgetsexploit_find_jmp_espexploit_verify_rop_chainextension_infoextension_list_installedfetchfetch_stream_get_eventsflutter_packages_detectframework_state_extractfrida_enumerate_functionsfrida_enumerate_modulesfrida_find_symbolsfrida_list_devicesfrida_list_processesfrida_list_sessionsfrida_memory_readfrida_memory_scanget_all_scriptsget_available_pluginsget_cache_statsget_call_stackget_collection_statsget_detailed_dataget_object_propertiesget_offloaded_dataget_scope_variables_enhancedget_script_sourceget_task_contextget_token_budget_statsgetBatterygetElementByIdgetGamepadsgetItemgraphql_extract_queriesgrpc_get_callsindexeddb_dumpinstrumentation_session_diffjadx_search_codejs_heap_searchlist_extension_workflowslist_extensionslist_macroslist_page_snapshotsllm_suggest_namesmaintenance_detect_gpumemory_anticheat_detectmemory_antidetectionmemory_antidetection_checkmemory_aob_scanmemory_bookmarkmemory_call_stackmemory_cheat_tablememory_code_cavesmemory_dumpmemory_emulator_detectmemory_find_accessesmemory_find_referencesmemory_freeze_exportmemory_generate_signaturememory_group_scanmemory_guard_pagesmemory_handle_enummemory_heap_anomaliesmemory_heap_enumeratememory_heap_statsmemory_inline_hook_detectmemory_integrity_checkmemory_list_typesmemory_mono_assembliesmemory_mono_classesmemory_mono_detectmemory_mono_fieldsmemory_mono_methodsmemory_mono_objectsmemory_pe_headersmemory_pe_imports_exportsmemory_pointer_scanmemory_process_controlmemory_read_typedmemory_region_comparememory_region_enumeratememory_register_typememory_reverse_mwtmemory_rtti_infomemory_search_stringmemory_session_exportmemory_structure_analyzememory_structure_comparememory_structure_export_cmemory_type_definememory_unregister_typememory_vtable_parsememory_watchmojo_decode_messagemojo_encode_messagemojo_ipc_capabilitiesmojo_list_interfacesmojo_messages_getmojo_messages_summarizemojo_verify_livenative_bridge_statusnemu_bytecode_decodenemu_bytecode_scannemu_capabilitiesnemu_data_dumpnemu_disassemblenemu_dlsym_diagnemu_dump_framenemu_dump_gotnemu_extract_apk_libsnemu_get_jni_stubnemu_inspect_importsnemu_jni_diagnemu_jni_handlesnemu_list_sessionsnemu_list_symbolsnemu_pointer_chainnemu_prepare_tlsnemu_read_byte_arraynemu_read_memorynemu_session_infonemu_vm_state_dumpnetwork_bot_detect_analyzenetwork_get_statsnetwork_get_statusnetwork_icmp_probenetwork_traceroutepage_coverage_startpage_coverage_stoppage_list_framespage_screenshotpage_storage_infopage_wait_for_selectorpcap_readpcapng_readperformance_get_metricsplatform_capabilitiesprocess_hollowing_scanproto_auto_detectproto_dissect_dnsproto_dissect_httpproto_export_schemaproto_fingerprintproto_infer_fieldsproto_infer_state_machineproto_visualize_stateprotobuf_decode_rawproxy_export_caproxy_get_requestsproxy_list_rulesproxy_statusquery_trace_sqlquerySelectorquerySelectorAllreverse_sessionsave_page_snapshotsearch_in_scriptssearch_toolsseek_to_timestampsession_progress_coverageskia_detect_rendererskia_extract_scenesnapshot_listsourcemap_diffsse_get_eventsstealth_verifysummarize_tracesyscall_capture_eventssyscall_correlate_jssyscall_ebpf_attachsyscall_ebpf_tracesyscall_filtersyscall_get_statssyscall_origin_mapsyscall_pattern_detectsyscall_resolve_ssnsyscall_stack_capturesyscall_trace_comparesyscall_trace_exporttasks_gettasks_listtasks_resulttcp_read_untiltls_cipher_suitestls_keylog_lookup_secrettls_keylog_parsetls_keylog_summarizetls_parse_certificatetls_parse_handshaketls_read_untiltrace_get_network_flowtrace_get_samplestransform_workbenchv8_allocation_trackv8_bytecode_decompilev8_bytecode_extractv8_deopt_tracev8_function_retainedv8_heap_diffv8_heap_find_leaksv8_heap_retainersv8_heap_samplingv8_heap_snapshot_analyzev8_heap_snapshot_capturev8_heap_snapshot_exportv8_heap_snapshot_listv8_heap_statsv8_object_comparev8_object_inspectv8_turbofan_graphv8_turbofan_inspectv8_type_profilev8_version_detectv8_wasm_inspectv8_weakrefs_inspectwasm_capabilitieswebgpu_adapter_infowebgpu_capture_commandswebgpu_error_capturewebgpu_frame_timingwebgpu_memory_layoutwebgpu_shader_disassemblewebgpu_shader_source_capturewebrtc_get_eventswebsocket_read_frameworkflow_run_inspectworkflow_suggestws_get_connectionsws_get_frames
Write 348 · Create, change, send or run things.
adb_apk_analyzeadb_apk_pulladb_app_cold_start_traceadb_file_pulladb_file_pushadb_input_keyeventadb_input_swipeadb_input_tapadb_input_textadb_installadb_port_forwardadb_proc_maps
Show 336 more tools
adb_pull_native_libsadb_screenrecordadb_screenshotadb_shelladb_ui_dumpadb_webview_attachadb_webview_listaddEventListenerai_hookanalysis_ast_matchanalysis_data_flowanalysis_decode_string_arrayanalysis_deflat_control_flowanalysis_security_scanantidebug_bypassantidebug_detect_protectionsapi_probe_batchapk_manifest_dumpapk_signapktool_buildapktool_decodeappend_session_insightarp_buildasar_extractast_transform_applyast_transform_chainbinary_ninja_bridgeblackbox_addblackbox_add_commonbreakpointbrowser_attachbrowser_attach_cdp_targetbrowser_codegen_startbrowser_cpu_profile_startbrowser_evaluate_cdp_targetbrowser_launchbrowser_select_tabbrowser_trace_startcall_toolcancelAnimationFramecanvas_trace_click_handlercaptcha_configcaptcha_vision_solvecheck_debug_portchecksum_applycollect_codecomplete_task_handoffconsole_buffersconsole_executeconsole_injectconsole_inject_fetch_interceptorconsole_inject_xhr_interceptorconsole_monitorcoordination_restore_snapshotcreate_task_handoffcreateElementcreateTextNodecross_domain_correlate_allcrypto_extract_standalonedebugger_evaluatedebugger_lifecycledebugger_pausedebugger_resumedebugger_sessiondebugger_stepdeobfuscatedns_bulk_resolvedns_cname_chaindns_probedns_resolvedns_reverseelectron_attachelectron_inspect_appelectron_ipc_sniffelectron_launch_debugenumerate_modulesethernet_frame_buildexploit_build_format_stringexploit_build_heap_sprayexploit_build_jop_chainexploit_build_ret2dlresolveexploit_build_rop_chainexploit_build_stack_pivotexploit_cache_configureexport_hook_scriptexport_traceextension_execute_in_contextextension_installextension_reloadextract_function_treefetch_stream_export_capturefetch_stream_monitorfrida_attachfrida_attach_interceptorfrida_detachfrida_dex_dumpfrida_generate_scriptfrida_resumefrida_spawngenerate_hooksghidra_analyzeghidra_bridgeghidra_decompilegraphql_enum_schemagraphql_introspectgraphql_replaygraphql_subscribegrpc_export_capturegrpc_frame_buildgrpc_frame_parsehook_presethttp_plain_requesthttp_request_buildhttp2_frame_buildhttp2_frame_parsehttp2_probehuman_mousehuman_scrollhuman_typingicmp_echo_buildida_bridgeida_decompileinject_dllinject_shellcodeinstall_extensioninstrumentation_artifactinstrumentation_hook_presetinstrumentation_network_replayinstrumentation_operationinstrumentation_sessioninstrumentation_session_exportinstrumentation_session_mergejadx_decompilejadx_decompile_apkjs_analyze_vmjs_bundle_searchjs_deobfuscate_jsvmpjs_deobfuscate_pipelinejs_solve_constraintsjs_symbolic_executejs_symbolic_execute_jsvmpmanage_hooksmemory_assemblememory_audit_exportmemory_batch_writememory_check_protectionmemory_dump_regionmemory_first_scanmemory_hypervisormemory_list_regionsmemory_next_scanmemory_parse_dumpmemory_pointer_chainmemory_pointer_mapmemory_readmemory_remotememory_scanmemory_scan_filteredmemory_scan_sessionmemory_unknown_scanmemory_writeminiapp_pkg_analyzeminiapp_pkg_scanminiapp_pkg_unpackmojo_monitornative_symbol_syncnemu_alloc_memorynemu_bind_all_importsnemu_bind_host_fnnemu_call_addressnemu_call_jni_exportnemu_call_symbolnemu_create_jni_handlenemu_create_sessionnemu_create_vtablenemu_gdbservernemu_load_apk_librarynemu_load_librarynemu_load_library_chainnemu_mem_inspectnemu_mem_mapnemu_mem_shadownemu_new_byte_arraynemu_patch_applynemu_regs_restorenemu_regs_savenemu_relaynemu_scan_memorynemu_session_loadnemu_set_pac_keynemu_set_registersnemu_set_vtable_slotnemu_setup_java_fieldnemu_setup_java_mocknemu_setup_java_mocksnemu_tracenemu_vm_state_comparenemu_vm_state_loadnemu_write_memorynemu_write_regionsnemu_xor_regionnet_raw_tcp_sendnet_raw_udp_sendnetwork_enablenetwork_export_harnetwork_extract_authnetwork_get_requestsnetwork_get_response_bodynetwork_http2_fingerprintnetwork_interceptnetwork_latency_statsnetwork_monitornetwork_replay_requestnetwork_rtt_measurenetwork_tls_fingerprintpage_backpage_block_scriptpage_clickpage_emulate_devicepage_evaluatepage_forwardpage_handle_dialogpage_hoverpage_inject_scriptpage_navigatepage_press_keypage_reloadpage_script_registerpage_script_runpage_scrollpage_selectpage_set_viewportpage_typepage_upload_filespayload_mutatepayload_template_buildpcap_writepcapng_writeperformance_traceprocess_check_debug_portprocess_detect_apcprocess_detect_hollowingprocess_enum_handlesprocess_enum_threadsprocess_findprocess_getprocess_launch_debugprocess_listprocess_resumeprocess_suspendprocess_windowsprofiler_cpuproto_define_patternproxy_add_ruleproxy_setup_adb_deviceproxy_startraw_ip_packet_buildreload_extensionsrestore_page_snapshotrizin_bridgerun_extension_workflowrun_macroscript_replace_persistsendBeaconservice_worker_deliver_pushservice_worker_dispatch_syncsession_progress_recordsetIntervalsetItemsetTimeoutsnapshot_createsourcemap_coveragesourcemap_discoversourcemap_fetch_and_parsesourcemap_lookupsourcemap_parse_v4sourcemap_reconstruct_treesse_export_capturesse_monitor_enablestart_trace_recordingstate_boardstate_board_iostate_board_watchstealth_configure_jitterstealth_generate_fingerprintstealth_injectstealth_set_user_agentstop_trace_recordingsyscall_direct_invokesyscall_start_monitorsyscall_stop_monitortab_workflowtcp_closetcp_writetls_cert_pin_bypasstls_cert_pin_bypass_fridatls_closetls_keylog_disabletls_keylog_enabletls_writetrace_recordingunderstand_codeunidbg_callunidbg_emulateunidbg_launchunidbg_traceupdate_task_handoffwasm_decompilewasm_detect_obfuscationwasm_diffwasm_disassemblewasm_dumpwasm_inspectwasm_inspect_sectionswasm_instrument_binarywasm_instrument_blockwasm_instrument_tracewasm_memory_inspectwasm_offline_runwasm_optimizewasm_string_extractwasm_to_cwasm_vmp_tracewatchwebcrack_unpackwebhookwebpack_enumeratewebrtc_export_capturewebrtc_monitorwebsocket_closewebsocket_send_framewidget_challenge_solveworkflow_conditional_stepworkflow_retry_policyws_export_capturews_send_frame
Delete 55 · Delete, drop, revoke or wipe things.
adb_uninstallbrowser_closebrowser_detach_cdp_targetbrowser_jsdom_cookiesbrowser_jsdom_executebrowser_passkey_seedcamoufox_servercleanup_artifactsclear_all_cachesclear_collected_dataclearIntervalclearTimeout
Show 43 more tools
deactivate_toolsdebugger_run_to_locationelectron_patch_fusesexecute_sandbox_scriptexploit_cache_clearextension_uninstallfrida_run_scriptgrpc_monitormanual_token_cleanupmemory_allocatememory_auto_assemblememory_auto_assemble_disablememory_batch_editmemory_breakpointmemory_freememory_freezememory_inject_dllmemory_inject_shellcodememory_patch_bytesmemory_patch_nopmemory_patch_undomemory_protectmemory_speedhackmemory_trace_codememory_write_historymemory_write_valuenemu_destroy_sessionnetwork_disablepage_cookiespage_local_storagepage_session_storageprocess_killproxy_clear_logsproxy_clear_rulesproxy_remove_ruleproxy_stopreset_token_budgetsession_progress_clearsmart_cache_cleanupsnapshot_restoretasks_cancelv8_heap_snapshot_deletews_monitor
Not yet classified 28 · We could not tell from the name and description.
activate_domainactivate_toolsatobbtoacoverage_reporterrorexploit_cache_invalidateexploit_encode_shellcodeexploit_generate_egghunterexploit_generate_patternexploit_generate_pwntoolsexploit_solve_constraints
Show 16 more tools
lognet_raw_tcp_listennet_raw_udp_listenrequestAnimationFrameroute_toolskia_correlate_objectstcp_opentls_decrypt_payloadtls_keylog_sealtls_opentls_probe_endpointwarnwebgpu_pipeline_dumpwebgpu_shader_compilewebgpu_timing_analysiswebsocket_open
Files it touches
- Any path the agent passes to its tools
Tools (600)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
activate_domainDescription is built at runtime.
activate_toolsDynamically register specific tools by name, regardless of current base tier. Use after search_tools to enable exactly the tools you need. In search-tier sessions this is usually enough; use activate_domain when you need every tool in a domain. Activated tools appear in the tool list immediately. If tools do not appear after activation, use call_tool to invoke them directly.
adb_apk_analyzeAnalyze an installed APK: package, permissions, activities, and security info.
adb_apk_pullPull an APK from a device to the local filesystem.
adb_app_cold_start_traceHigh-level Android startup trace: force-stop, clear logcat, start activity with -W, wait, collect PID-filtered logs, and parse launch/Looper timing.
adb_device_listread-onlyList all connected Android devices and emulators.
adb_dumpsysread-onlyRun adb shell dumpsys for a service and return parsed structured output. Supports key-value extraction, array parsing, and section detection. Common services: package, activity, window, battery, meminfo, alarm, cpuinfo, diskstats, netstats, usagestats.
adb_file_pullPull a file from an Android device using normal ADB permissions.
adb_file_pushPush a local file to an Android device using normal ADB permissions.
adb_getpropread-onlyDump and parse Android system properties (getprop) into a structured map with a curated device fingerprint (model, SDK, ABI, build fingerprint, security patch, bootloader lock).
adb_input_keyeventSend an Android keyevent name or numeric key code through adb shell input.
adb_input_swipeSend a touchscreen swipe event through adb shell input.
adb_input_tapSend a touchscreen tap event through adb shell input.
adb_input_textSend text through adb shell input text with Android-safe whitespace encoding.
adb_installInstall one APK or a split-APK set onto a device with parsed success output.
Show 585 more tools
adb_logcat_queryread-onlyCapture and filter Android logcat output in-process without shell grep pipelines.
adb_package_summaryread-onlyReturn structured Android package metadata: launcher, uid, versions, permissions, components, and native library dirs.
adb_port_forwardManage ADB forward/reverse port mappings for device-host bridge workflows.
adb_proc_mapsRead and parse /proc/PID/maps from a device, resolving PID from packageName when needed.
adb_pull_native_libsPull native shared libraries (.so) for an installed app from a device.
adb_root_checkread-onlyProbe root indicators such as su, Magisk, test-keys, SELinux, and shell uid.
adb_screenrecordRecord a short MP4 screen capture through adb shell screenrecord and pull it locally.
adb_screenshotCapture a PNG screenshot through adb exec-out screencap -p.
adb_shellExecute an ADB shell command on a specific device.
adb_ui_dumpCapture Android UI hierarchy via uiautomator dump. Runs uiautomator dump on-device, pulls the XML, and returns parsed UI tree. Useful for UI automation verification, layout inspection, and accessibility tree analysis.
adb_uninstallUninstall a package from a device, optionally keeping app data.
adb_webview_attachAttach to a WebView via ADB; returns WebSocket debugger URL for CDP.
adb_webview_listList debuggable WebView targets connected via ADB.
addEventListenerai_hookManage AI hooks. Actions: inject (inject code into page), get_data (retrieve captured hook data), list (all active hooks), clear (remove hook data by id or all), toggle (enable/disable a hook), export (export data as JSON/CSV).
ai_suggest_exploitsread-onlyUse LLM to suggest exploit primitives and attack chains for a given vulnerability. Returns theoretical exploitation steps, references, and required conditions. IMPORTANT: Does NOT generate executable payloads or malicious code.
analysis_ast_matchMatch AST nodes by type and optional property filter.
analysis_data_flowTrace data flow through JavaScript: identify sources (user input, network, storage), sinks (XSS, eval, SQL injection, command execution), sanitizer pass-through points, and tainted variable propagation paths. Useful for finding injection vulnerabilities.
analysis_decode_string_arrayDecode literal string-array access back to strings.
analysis_deflat_control_flowFlatten switch-dispatch control flow back to straight-line code.
analysis_security_scanStatic security scan of JavaScript: detect hardcoded secrets (API keys, tokens), dangerous functions (eval, Function constructor), XSS sinks (innerHTML, document.write), SQL injection patterns, and weak crypto (Math.random). Returns structured risks with severity and recommendations.
android_runtime_dump_sessionread-onlyCreate or inspect a managed Android runtime dump session from Frida/ADB dump artifacts, DEX files, and /proc/PID/maps snapshots.
antidebug_bypassBypass one or more anti-debug protection types. Specify types to apply; omit or use ["all"] to apply all bypasses. Types: all, debugger_statement, timing, stack_trace, console_detect.
antidebug_detect_protectionsDetect anti-debug protections in current page with bypass recommendations.
api_probe_batchBatch-probe API endpoints in browser context with auto token injection and HTML skip.
apk_dex_intakeread-onlyBuild a cohesive APK/DEX intake evidence packet: ZIP entries, manifest summary, DEX headers, native libraries, generic surface hints, caller-supplied hint matches, and next actions.
apk_manifest_dumpExtract AndroidManifest.xml from an APK for quick inspection.
apk_manifest_queryread-onlyReturn a compact structured AndroidManifest summary: package, launcher activity, app class, SDKs, permissions, components, providers, and SDK/surface hints.
apk_native_libs_listread-onlyList packaged native shared libraries (.so) inside an APK.
apk_packer_detectread-onlyDetect Android APK packers by matching `lib/<abi>/lib*.so` filenames against user-supplied customSignatures (ReDoS-guarded regex compilation). The framework ships no built-in signature table — callers provide their own. **Does not unpack, execute, or otherwise interact with packed code.**
apk_packer_list_signaturesread-onlyList the in-process signature table used by `apk_packer_detect`. Empty by default; reflects caller-managed state at request time. Optionally filter by case-insensitive category substring.
apk_signSign an APK with apksigner using a caller-supplied keystore. Pairs with apktool_build for a full repack-and-sign workflow.
apk_signing_block_parseread-onlyRead-only parser for the APK Signing Block (schemes v2/v3/v3.1/v4) plus key-rotation lineage detection and residue-block / dex-prefix / magic-offset anomaly flags. Never mutates the APK.
apk_static_triageread-onlyOne-shot APK triage: ZIP metadata, manifest summary, native libs, asset hints, likely packers/protectors, and recommended next steps.
apktool_buildRebuild an APK from a decoded apktool source directory (closes the patch-and-repack loop with apk_sign).
apktool_decodeDecode an APK using apktool to inspect resources, manifest, and smali output.
append_session_insightRecord a persisted insight for the current session.
arp_buildBuild a deterministic ARP payload for Ethernet/IPv4.
asar_deobfuscateread-onlyScan every .js file inside an ASAR archive for obfuscation indicators (string-array arrays, webpack bundles, control-flow flattening, dynamic code, minification) and classify each file. Flagged files are optionally extracted to a directory for downstream deobfuscation.
asar_extractExtract and list files from an Electron ASAR package.
asar_repackread-onlyPack a directory tree into an Electron ASAR archive (inverse of asar_extract). Walks the input directory and writes a valid .asar (4xUInt32LE pickle prefix + JSON header + data segment) that parseAsarBuffer and Electron accept. Closes the unpack → patch → repack → retest loop without leaving jshookmcp.
asar_searchread-onlyGrep text patterns inside ASAR archive contents without extraction.
ast_transform_applyApply transforms to input code or a live page scriptId.
ast_transform_beautifyread-onlyPretty-print minified or obfuscated JavaScript: re-emit the parsed source with standard 2-space indentation and normalised spacing. Formatting only — the AST is preserved, so program semantics do not change. Unparseable input is returned unchanged.
ast_transform_chainCreate and store an in-memory transform chain.
ast_transform_previewread-onlyPreview lightweight AST-like transforms (string/regex based) and return before/after diff.
atobbinary_decoderead-onlyDecode binary payloads, transport encodings, and compressed blobs into hex, utf8, or json output.
binary_detect_formatread-onlyDetect binary payload format and encoding signals.
binary_encoderead-onlyEncode utf8/hex/json input into transport encodings or compressed base64 blobs.
binary_entropy_analysisread-onlyCompute entropy and byte frequency for a payload.
binary_entropy_profileread-onlyCompute Shannon entropy across fixed-size chunks of a binary file to locate encrypted / packed / compressed sections. High-entropy regions (>=7.0 bits/byte) are likely encrypted or compressed; low-entropy (<4.0) are typically code or text. Pure-compute, no external tools.
binary_instrument_capabilitiesread-onlyReport binary instrumentation backend availability.
binary_key_extractread-onlyScan a binary for hardcoded key candidates (raw high-entropy, Base64, hex). Read-only — no decryption.
binary_ninja_bridgeSend a command to a local Binary Ninja analysis bridge.
binary_strings_extractread-onlyExtract printable ASCII/UTF-16LE strings from a binary file with regex filtering.
blackbox_addBlackbox scripts (skip during debugging) Usage: - Skip third-party library c...
blackbox_add_commonBlackbox all common libraries (one-click) Includes: - jquery, react, vue, an...
blackbox_listread-onlyList script blackbox patterns.
breakpointManage breakpoints: code (line/script), function-name, XHR (URL pattern), event listener, event category, and exception breakpoints. Actions: - set: Create a breakpoint. Type determines required params. - remove: Remove a breakpoint by ID. - list: List active breakpoints of the given type. Types & params: - code: lineNumber (required), scriptId?, columnNumber?, condition?, logMessage? (logpoint: logs without pausing) - function: functionName (required for set) — resolves via globalThis lookup and breaks whenever that function is called - xhr: urlPattern (required for set) - event: eventName …
browse_extension_registryread-onlyBrowse the online extension registry for installable plugins and workflows.
browser_attachConnect to a running browser.
browser_attach_cdp_targetAttach to a CDP target by targetId.
browser_cdp_performance_metricsread-onlyAtomic primitive: fetch browser runtime metrics via CDP Performance.getMetrics() on the active page. Returns raw CDP-level counters (LayoutCount, RecalcStyleCount, ScriptDuration, TaskDuration, JSHeapUsedSize, Nodes, Documents, Frames, ...) — not Web Vitals (use browser_get_metrics for those).
browser_closecan change or delete dataClose the browser and release all resources.
browser_codegen_startStart recording browser actions as replayable steps.
browser_codegen_stopread-onlyStop recording browser actions and return cleaned replay steps.
browser_cpu_profile_startAtomic primitive: begin CDP CPU profiling on the active page (Profiler.start). Pair with browser_cpu_profile_stop to save the .cpuprofile. Set samplingInterval to 30-100 µs for high-resolution profiles (default 1000 µs / 1 ms).
browser_cpu_profile_stopread-onlyAtomic primitive: stop CDP CPU profiling, rank hot functions by sample count, and persist the raw profile to artifacts/profiles/ (or a custom path). The hot function list is derived from the samples array — modern Chrome profiles do not populate hitCount. Fails clearly if profiling was never started.
browser_detach_cdp_targetcan change or delete dataDetach the current CDP target session.
browser_evaluate_cdp_targetEvaluate JS in the attached CDP target.
browser_font_fingerprintread-onlyEnumerate locally-installed fonts for fingerprint analysis. Primary path is the Local Font Access API (queryLocalFonts, Chromium 103+); when unavailable or denied, falls back to a small document.fonts.check probe set. Returns the detected font set, a stable hash for comparison, and optionally spoofs the font fingerprint.
browser_get_metricsread-onlyAtomic primitive: collect page performance metrics via PerformanceMonitor — Web Vitals (FCP, LCP, CLS, TTFB), DOM timing (domContentLoaded, loadComplete), engine-level counters (scriptDuration, layoutDuration, recalcStyleDuration) and JS heap sizes (usedJSHeapSize / totalJSHeapSize / jsHeapSizeLimit). Optionally include the raw performance timeline entries. Replaces the legacy network-domain performance_get_metrics (still working as a backward-compat alias).
browser_jsdom_cookiescan change or delete dataManage cookies on a JSDOM session. Isolated from the attached browser.
browser_jsdom_executecan change or delete dataEvaluate JS inside a JSDOM session. Requires explicit authorization — arbitrary code execution.
browser_jsdom_parseread-onlyParse HTML into an in-memory JSDOM session. No browser needed.
browser_jsdom_queryread-onlyQuery a JSDOM session with a CSS selector.
browser_jsdom_serializeread-onlySerialize a JSDOM session to HTML.
browser_launchLaunch Chromium/Camoufox or connect to a running browser.
browser_list_cdp_targetsread-onlyList CDP targets with optional type/URL/title filters.
browser_list_tabsread-onlyList open browser tabs with URLs and titles.
browser_list_workersread-onlyEnumerate Service Worker / Shared Worker / dedicated Web Worker targets via Target.getTargets. Use browser_worker_scripts(targetId=...) afterwards to dump a worker's loaded scripts — essential for inspecting PWA / SW-backed auth code.
browser_passkey_seedcan change or delete dataSeed a WebAuthn/Passkey credential into the browser for test automation.
browser_performance_observerread-onlyAtomic primitive: subscribe to PerformanceObserver entry types in the active page and return both buffered and live entries observed during a collection window. Entry types are passed through to PerformanceObserver.observe({ type }) verbatim (e.g. largest-contentful-paint, layout-shift, longtask, event, long-animation-frame); unsupported entry types are skipped silently. One observer per type — the API does not accept multiple types in a single observe() call.
browser_resource_timingread-onlyAtomic primitive: read Resource Timing API entries for the active page and decompose each resource into dns / connect / tls / ttfb / download phases plus transfer and body sizes. Optionally include Server-Timing headers and filter by URL substring. A read-only snapshot — no observers or listeners are installed.
browser_select_tabSwitch active tab by index, URL pattern, or title pattern.
browser_statusread-onlyReport browser status: running, tab count, version.
browser_trace_startAtomic primitive: begin a Chrome performance trace on the active page via page.tracing.start(). Pair with browser_trace_stop to save the trace to disk. Use a sensible categories list when you have a specific hypothesis (e.g. ["devtools.timeline","v8.execute","blink.user_timing"]); the default set covers most profiling needs.
browser_trace_stopread-onlyAtomic primitive: stop the Chrome performance trace started by browser_trace_start and persist it to artifacts/traces/ (or to a custom path). Returns event count, file size, and a Chrome DevTools hint. Fails clearly if tracing was never started or has already been stopped.
browser_worker_scriptsread-onlyAttach a CDP session to a worker target and dump its parsed scripts (equivalent to get_all_scripts, but scoped to a worker). Debugger.scriptParsed is replayed on Debugger.enable, so already-loaded worker scripts are returned.
btoacall_graph_analyzeread-onlyAnalyze runtime function call graph from in-page traces.
call_toolExecute an already-active tool by name. Use this when activate_tools/activate_domain registered a tool but your client did not refresh its tool list. Does not auto-activate inactive tools.
camoufox_geolocationread-onlyGet geolocation for a locale.
camoufox_servercan change or delete dataStart, close, or check status of a Camoufox anti-detect server.
cancelAnimationFramecanvas_dump_shadersread-onlyDump the linked shader programs (vertex + fragment source, uniforms) running on the target canvas. Uses engine introspection where available (Three.js renderer.info.programs, BABYLON.Effect.ShadersStore, Laya.Shader registry) and the WEBGL_debug_shaders extension to recover source where the driver allows. Returns programs[] + an honest `reason` when the engine / driver refuses to expose source. Academic basis: WGPULens arXiv 2606.26412 + DarthShader arXiv 2409.01824.
canvas_engine_fingerprintread-onlyDetect Canvas/WebGL game engines in the page.
canvas_inject_draw_hookread-onlyIntercept Canvas 2D (drawImage/fillText/strokeText) and WebGL (drawArrays/drawElements) draw calls into a ring buffer on the page. Actions: install (wrap prototypes), read (dump captured calls), uninstall (restore). Set timing=true at install to also sample a requestAnimationFrame loop; then includeTiming=true at read to get frame-level stats (avg/p95 frame time, dropped frames, 60fps budget misses).
canvas_memory_invariantsread-onlyAssert runtime invariants about WebGL context lifetime, engine state consistency, and texture/program leaks. Reports checks[], violations[] (with severity + safe-cleanup fix), and a recommendations[] block. Honest scope: only JS-observable metrics (DOM canvas count vs live WebGL contexts, renderer.info.memory counts, contextLoss events). Full GC sweep / native-heap inspection is out of scope. Academic basis: JSidentify-V2 arXiv 2508.01655.
canvas_pick_object_at_pointread-onlyPick / hit-test the topmost object at a given screen coordinate using the engine's hit-test system
canvas_scene_dumpread-onlyExtract the full scene tree / display list from a detected canvas engine.
canvas_scene_searchread-onlySearch a previously-dumped scene tree (canvas_scene_dump output) for nodes by name regex and/or type. Pure-compute — no browser session required. Returns matching nodes with their path from root, depth, and engine-specific properties.
canvas_trace_click_handlerTrace a click event from DOM to JS call stack.
captcha_configConfigure CAPTCHA detection sensitivity and solver backend.
captcha_detectread-onlyDetect CAPTCHAs on the current page.
captcha_solver_capabilitiesread-onlyReport CAPTCHA solving mode availability.
captcha_vision_solveSolve a CAPTCHA with manual flow or a configured external service.
captcha_waitread-onlyBlock until the user manually solves the CAPTCHA.
check_debug_portCheck if a process is being debugged using NtQueryInformationProcess (ProcessDebugPort).
checksum_applyApply a deterministic 16-bit Internet checksum across a payload slice, optionally zeroing and writing the checksum field back into the packet.
cleanup_artifactscan change or delete dataClean generated artifacts by age and size.
clear_all_cachescan change or delete dataClear all internal caches. Destructive — prefer smart_cache_cleanup.
clear_collected_datacan change or delete dataClear collected script data, caches, and in-memory indexes.
clearIntervalclearTimeoutcollect_codeCollect JavaScript from a target website with configurable strategy.
complete_task_handoffMark a task handoff as completed.
console_buffersManage injected interceptor state.
console_executeEvaluate a JS expression in the browser console context.
console_get_exceptionsread-onlyGet captured uncaught exceptions from the page
console_get_logsread-onlyRetrieve captured console logs with type and time filters.
console_injectInject an in-page script, XHR, fetch, or function monitor.
console_inject_fetch_interceptorInject a fetch interceptor.
console_inject_xhr_interceptorInject an XMLHttpRequest interceptor.
console_monitorToggle console log capture (log, warn, error, info, debug).
coordination_restore_snapshotRestore a saved page snapshot including IndexedDB data. Navigates to the captured URL, re-injects cookies, localStorage, sessionStorage, and IndexedDB records from the snapshot.
coverage_reportReport which tools have been called in the current runtime and which known tools remain uncalled. Loads all domains first so the uncalled list reflects the full tool catalog, not just currently active tools.
create_task_handoffCreate a persisted task handoff for cross-tool coordination.
createElementcreateTextNodecross_domain_capabilitiesread-onlyList all cross-domain capability categories and available workflows.
cross_domain_correlate_allRun the built-in skia, mojo, syscall, and binary correlators and merge the results into the shared evidence graph.
cross_domain_evidence_exportread-onlyExport the shared cross-domain evidence graph as JSON.
cross_domain_evidence_queryread-onlyQuery the shared evidence graph by URL, heap address, function, script, node type, metadata, or chain.
cross_domain_evidence_statsread-onlyGet node and edge statistics for the shared cross-domain evidence graph.
cross_domain_healthread-onlyReport health status of cross-domain bridges and correlators.
cross_domain_suggest_workflowread-onlyRecommend a multi-domain workflow to achieve a specific analysis goal.
cross_domain_synonymread-onlyMap natural-language queries to tool recommendations using a lightweight synonym graph. Pure TS — no LLM. Useful for discovering which tools implement a concept described in plain English (e.g. "find where the app signs requests" → deobfuscation, crypto, network).
crypto_compareread-onlyCompare two crypto implementations against identical test vectors.
crypto_extract_standaloneExtract crypto/sign/encrypt function from current page and generate standalone runnable code.
crypto_test_harnessread-onlyRun extracted crypto code in worker_threads + vm sandbox and return deterministic test results.
dart_call_functionread-onlyExecute a Dart function in the ARM64 emulator by address or name, with simplified runtime (mock built-ins, tagged pointers). Pass a sessionId to reuse the cached snapshot; the executor still initialises fresh CPU state per call (register state is never shared across calls).
dart_call_graphread-onlyBuild a best-effort static call graph from a Dart AOT snapshot: nodes are Code objects, edges are ObjectPool entries whose value matches another Code entry point (caller to callee). Pass a sessionId to reuse a cached snapshot. Honest boundary: indirect/dynamic calls without a pool entry, and PcDescriptors-level mapping, require instruction decoding (deferred — cross-Dart-SDK version work).
dart_create_sessionread-onlyParse a Dart AOT snapshot once and cache it under a sessionId, so subsequent dart_load_snapshot / dart_list_functions / dart_call_graph / dart_inspect_object_pool / dart_call_function / dart_trace_execution calls can pass sessionId and skip re-parsing libapp.so (the dominant cost on a 10-40 MB Flutter snapshot). Destroy with dart_destroy_session when done; idle sessions auto-expire (TTL + sweep, see DART_SESSION_*).
dart_destroy_sessionread-onlyDestroy a Dart snapshot session created by dart_create_session, releasing the cached parsed snapshot. Returns destroyed=true if the session existed, false if it was unknown or already swept by the idle TTL.
dart_inspect_object_poolread-onlyDump an ObjectPool at a specific address, showing all entries with types and values. Pass a sessionId to reuse a cached snapshot.
dart_list_functionsread-onlyList all Dart Code objects (compiled functions) from a loaded snapshot, with entry point address, size, and name (if available). Pass a sessionId to reuse a cached snapshot.
dart_load_snapshotread-onlyLoad and parse a Dart AOT snapshot from libapp.so, extracting metadata and statistics (Code objects, ObjectPool entries, clusters). Pass a sessionId from dart_create_session to reuse an already-parsed snapshot (skips re-parsing libapp.so).
dart_object_pool_dumpread-onlyRead-only static dump of the Dart isolate ObjectPool in a libapp.so: classify each slot as smi/mint/double/string/classRef/functionRef/pool/null/unknown.
dart_pc_descriptorsread-onlyParse PcDescriptors for one or all Dart functions in a loaded snapshot and resolve call targets by decoding ARM64 BL instructions at each call-site PC offset. Returns structured call-site entries with pcOffset, kind (1=icCall, 2=unoptStaticCall, 3=runtimeCall), and optionally resolved target addresses when code section bytes are available. Pass a sessionId or file path to load the snapshot.
dart_smi_scanread-onlyRecover Dart Small Integer (Smi) constants from a libapp.so by reading aligned little-endian words and stripping the heap-pointer tag bit.
dart_snapshot_header_parseread-onlyParse the Dart isolate snapshot header in a libapp.so: magic, kind, 32-byte hash, features, target arch. Read-only.
dart_strings_extractread-onlyStream-extract ASCII/UTF-16LE strings from a Dart AOT libapp.so and classify them (urls, paths, classNames, packageRefs, cryptoKeywords, Dart identifiers, plus customRules). ReDoS-guarded.
dart_symbolizeread-onlyResolve obfuscated Dart identifiers using a developer-supplied Flutter --save-obfuscation-map JSON (flat, pairs, or object shape).
dart_trace_executionread-onlyTrace Dart function execution step-by-step, emitting each instruction with register state (PC, x0-x30, PP, THR). Pass a sessionId to reuse the cached snapshot.
dart_version_fingerprintread-onlyIdentify Flutter/Dart SDK release from a libapp.so by combining header parse with a built-in (and optionally user-supplied) hash table.
deactivate_toolsRemove previously activated tools to free context. Only affects dynamically activated tools (added via activate_tools, activate_domain, or extension activation), not base profile tools.
debugger_capture_hitread-onlyWait for the next debugger pause and capture call stack plus optional top-frame scope variables.
debugger_disassembleread-onlyDisassemble V8 bytecode / instructions at the current paused location (or a given scriptId). Resolves the target scriptId automatically from the current paused call frame — useful when paused inside obfuscated/VM code to decide whether to step in. Native bytecode requires V8 natives syntax; set includeSourceFallback to derive a pseudo-bytecode from source when native extraction is unavailable.
debugger_evaluateEvaluate a JavaScript expression. context="frame" evaluates in the current call frame (requires paused state); context="global" evaluates in the global context (no pause required).
debugger_get_paused_stateread-onlyGet current paused state and reason.
debugger_lifecycleEnable or disable the CDP debugger session.
debugger_pausePause execution at the next statement.
debugger_resumeResume execution.
debugger_run_to_locationRun execution until a source location by setting a temporary code breakpoint, resuming, waiting for pause, and removing the breakpoint.
debugger_sessionManage debugger sessions. Actions: save (persist current session to file), load (restore session from file/JSON), export (export session as JSON string), list (list saved sessions in ./debugger-sessions/).
debugger_stepStep execution: into (enter next call), over (skip next call), out (exit current function).
debugger_wait_for_pausedread-onlyWait for debugger pause after setting breakpoints.
deobfuscateRun webcrack-powered JavaScript deobfuscation with bundle unpacking.
describe_toolGet detailed information about a specific tool, including its input schema. Use this to see the exact parameters a tool expects before calling it.
detect_cryptoread-onlyDetect cryptographic algorithms and usage patterns in source code.
detect_obfuscationread-onlyDetect obfuscation techniques in JavaScript source.
dex_scan_fileread-onlyScan a binary/memory-dump file for DEX or CompactDex magic and optionally extract hits.
diff_heap_snapshotsread-onlyCompare two heap snapshots from a trace.
dns_bulk_resolveResolve many hostnames concurrently with per-host status.
dns_cname_chainTrace the full CNAME chain for a hostname.
dns_probeRun a DNS query and return structured status instead of throwing.
dns_resolveResolve a hostname to DNS records using the system resolver or an optional DNS server.
dns_reverseReverse DNS lookup — find hostnames for an IP address.
doctor_environmentread-onlyRun environment doctor: dependencies, bridges, platform limits.
electron_attachAttach to an Electron CDP port and optionally evaluate in a matching page.
electron_check_fusesread-onlyRead Electron fuse states.
electron_debug_statusread-onlyCheck status of dual-CDP debug sessions launched by electron_launch_debug.
electron_inspect_appAnalyze Electron app structure: main/renderer entry, preload, IPC.
electron_ipc_sniffMonitor Electron IPC messages.
electron_launch_debugLaunch Electron with main and renderer CDP ports.
electron_patch_fusescan change or delete dataPatch Electron fuse states.
electron_scan_userdataread-onlyScan a directory for Electron JSON userdata files.
electron_verify_integrityread-onlyVerify Electron ASAR integrity: parse the ElectronAsarIntegrity JSON embedded in the main binary, locate each referenced ASAR, and compare the on-disk SHA256/SHA512 hash against the embedded hash. A mismatch means the ASAR was tampered with after build.
electron_verify_signatureread-onlyInspect a packaged Electron binary's own code signature (PE Authenticode on Windows, Mach-O embedded code signature on macOS). Pure-TS structural parse: locates the WIN_CERTIFICATE / SuperBlob, decodes the PKCS#7 SignedData, and surfaces the cert chain, signer, digest algorithm, and (macOS) the CodeDirectory ident + best-effort cdhash. No codesign/signtool dependency (runs in any CI). Cryptographic signature validity and timestamp counter-signatures are out of scope (verified:false).
enumerate_modulesList all loaded modules (DLLs) in a process with their base addresses.
errorethernet_frame_buildBuild a deterministic Ethernet II frame from source/destination MAC addresses, EtherType, and payload bytes.
evidence_chainread-onlyGet full provenance chain from a node ID in specified direction.
evidence_exportread-onlyExport the reverse evidence graph as JSON snapshot or Markdown report.
evidence_queryread-onlyQuery reverse evidence graph by URL, function name, or script ID to find associated nodes.
execute_sandbox_scriptExecute JavaScript in an isolated sandbox.
exploit_analyze_mitigationsDetect binary security mitigations (NX/DEP, PIE/ASLR, stack canary, RELRO, FORTIFY_SOURCE, CFG). Returns boolean flags for each protection. CFG (Control Flow Guard) is detected on Windows PE via IMAGE_DLLCHARACTERISTICS_GUARD_CF (0x4000).
exploit_build_format_stringGenerate format string exploit payload for arbitrary write. Uses %hn (2-byte) writes for reliability. Returns hex payload and reliability assessment.
exploit_build_heap_sprayGenerate heap spray payload for predictable heap layout. Supports V8 (ArrayBuffer), IE (BSTR), and generic (ArrayBuffer) spray targets. Returns spray code, allocation count, and predictability score.
exploit_build_jop_chainBuild a JOP (Jump-Oriented Programming) chain from binary gadgets. JOP bypasses CFI by chaining gadgets via an indirect-jump dispatcher (e.g. jmp [rax]) instead of ret. Discovers dispatcher candidates, groups functional gadgets by dispatch register, and assembles a chain that covers the specified goal constraints. Also supports COP (Call-Oriented) and COOP (Counter-Object Oriented) chains.
exploit_build_ret2dlresolveBuild a ret2dlresolve payload that forges ELF dynamic-linker structures to resolve an arbitrary symbol (e.g. "system") without knowing libc addresses. Generates fake .rel.plt, .dynsym, and .dynstr entries. Supports x86 (Elf32_Rel) and x64 (Elf64_Rela). Returns hex payload, reloc_offset, and structural details. Pure-TS offline builder — no live process needed. Reference: phrack #58 article 4, pwntools Ret2dlresolvePayload.
exploit_build_rop_chainConstruct a ROP chain for a specified goal (execve, write_memory, call_function). Automatically searches for required gadgets and chains them. Returns hex chain and gadget list. User must provide command/address/function as needed.
exploit_build_stack_pivotFind and assemble stack pivot gadgets from a binary. Stack pivots redirect the stack pointer (ESP/RSP) to a controlled buffer, enabling ROP chains when limited stack space is available. Detects xchg(add/sub/mov,sp), push/pop(sp), leave, and add sp,N pivot patterns.
exploit_cache_clearClear all cached exploit-dev results. Use when binaries have been modified or to free memory.
exploit_cache_configureUpdate exploit-dev cache configuration (TTLs, memory limits, enable/disable). Changes take effect immediately.
exploit_cache_invalidateInvalidate cached exploit-dev results for a specific binary (by path). Computes the binary hash and removes all matching cache entries. Call without binaryPath to clear the entire cache. Use when binaries have been recompiled or modified.
exploit_cache_statsGet exploit-dev cache statistics including hit rate, memory usage, and entry count. Used for performance monitoring and cache tuning.
exploit_calculate_offsetsCalculate buffer overflow offset from crash value and De Bruijn pattern. Used to determine exact EIP/RIP overwrite offset.
exploit_discover_one_gadgetDiscover one-gadget (single-address shell-spawning) offsets for common libc versions. First checks a built-in database (glibc 2.23/2.27/2.31/2.35/2.39 for x64/x86, musl 1.2), then falls back to heuristic binary scanning for custom libcs. Returns offsets with constraints (e.g. "[rsp+0x70] == NULL") that must be satisfied for the one-gadget to work. Also lists all known libc identities when called with listKnown=true.
exploit_encode_shellcodeEncode shellcode to avoid bad characters or detection. Supports alphanumeric, unicode, XOR, and fnstenv encodings. Returns encoded shellcode and decoder stub. User must provide raw shellcode.
exploit_find_gadgetsSearch for ROP/JOP/COP/COOP gadgets in a binary file. Returns addresses, instructions, and bytes for each gadget. Supports filtering by regex pattern and gadget type. User must provide target binary.
exploit_find_jmp_espFind "jmp esp" / "call esp" style gadgets for stack pivoting. Searches for jump/call instructions targeting a specific register.
exploit_generate_egghunterGenerate egghunter shellcode for constrained buffer sizes. An egghunter searches process memory for a 4-byte "egg" tag (repeated twice) and jumps to the real shellcode following it. Supports Linux x86 access(2)-based and Windows SEH-based egghunters. Reference: skape, "Safely Searching Process Virtual Address Space" (2004).
exploit_generate_patternGenerate De Bruijn sequence for offset finding. Every 4-byte substring is unique, allowing precise offset calculation from crash dumps.
exploit_generate_pwntoolsGenerate a pwntools-compatible Python exploit script (exploit.py). Accepts ROP chain data, JOP chain data, shellcode payload, or one-gadget offset and emits a ready-to-run script with proper ELF loading, remote/local I/O setup, and payload assembly. Templates: io, rop, shellcode, ret2libc, format.
exploit_solve_constraintsSolve a system of constraints using the Z3 SMT solver. Each constraint is a JavaScript-like boolean expression (e.g. "x > 10", "y <= 20", "x + y < 100"). Constraints are conjunctive (AND-ed together). Supports int, real, bool, and bitvec variable types. Returns sat/unsat/unknown plus an optional model with variable assignments when SAT. Use this for ROP gadget verification, opaque predicate inversion, and general constraint solving.
exploit_verify_rop_chainVerify a user-supplied ROP chain against an exploit goal using Z3. Decodes the hex chain into gadget addresses, matches each to a known gadget, simulates the register effects, and checks whether the final state satisfies the goal (e.g. execve syscall registers, write_memory address/value, call_function ABI args). Use this to audit hand-crafted or third-party ROP chains before use. Returns valid flag, decoded chain, final register state, violations, and warnings.
export_hook_scriptExport generated hook templates as a complete, runnable Frida script.
export_traceExport a trace database. format="chrome-trace" (default) emits Chrome Trace Event JSON with per-category thread tracks, thread_name metadata, and CPU-profile flame-graph X events. format="har" emits HTTP Archive 1.4 joining network_resources + response bodies — interchange format for Burp/ZAP/Postman.
extension_execute_in_contextLoad an extension and execute a named exported context function.
extension_inforead-onlyRead installed extension manifest details without importing plugin code.
extension_installInstall/register an extension from a manifest, local package directory, local module file, or remote module URL. Directory mode is zero-config: pass source=<plugin dir> after `pnpm build` and the tool reads id/name/version from package.json and discovers dist/manifest.js (or dist/index.js) automatically when no entry pointer exists.
extension_list_installedread-onlyList installed extensions from the local registry.
extension_reloadReload an installed extension by unloading and loading it again.
extension_uninstallcan change or delete dataUninstall an extension from the local registry.
extract_function_treeExtract a function and its dependency tree from collected scripts.
fetchfetch_stream_export_captureExport events captured by the fetch()-based stream monitor to artifacts/captures as JSON or NDJSON.
fetch_stream_get_eventsread-onlyGet events captured by the fetch()-based stream monitor (text/event-stream consumed via fetch). Set fullData=true to include full event data.
fetch_stream_monitorEnable or disable capture of fetch()-based streams. Wraps window.fetch and, for responses with content-type text/event-stream, clones the body and parses the SSE frame stream into events. Covers the LLM / GraphQL-subscription streaming that the EventSource-based sse_monitor_enable misses (fetch + POST + custom headers). Use fetch_stream_get_events to read captured events.
flutter_packages_detectread-onlyDetect third-party Dart `package:` refs in a Flutter libapp.so, aggregated and SDK-stdlib-filtered.
framework_state_extractread-onlyExtract React/Vue/Svelte/Solid component state and meta-framework info.
frida_attachAttach Frida to a target and open a session. Defaults to the local device; pass device+host for USB/remote devices. On Android the frida process name is the App Label (not the package name) — use frida_list_processes and attach by pid to avoid name mismatches.
frida_attach_interceptorGenerate a real Frida Interceptor.attach block for a symbol and optionally install it in a session.
frida_detachDetach from a Frida session and clean up resources.
frida_dex_dumpRun frida-dexdump as a high-level Android DEX dump helper by package/process name or PID.
frida_enumerate_functionsread-onlyEnumerate exported functions for a specific module in a Frida session.
frida_enumerate_modulesread-onlyList loaded modules in an attached Frida session, with an isSystem tag and a summary (total/system/nonSystem). Use filter to focus on non-system modules for broker-vs-agent diffing.
frida_find_symbolsread-onlySearch for symbols matching a pattern in a Frida session.
frida_generate_scriptGenerate a Frida interceptor or hook script from built-in templates.
frida_list_devicesread-onlyList frida-visible devices (local, USB, remote) via frida-ls-devices. Use the returned id with frida_attach device=id, or connect directly with device=remote + host.
frida_list_processesread-onlyList processes on a Frida device via frida-ps (defaults to the local device; pass device+host for USB/remote). On Android the process name is the App Label, not the package name — attach by the returned pid.
frida_list_sessionsread-onlyList all active Frida attach sessions with target info.
frida_memory_readread-onlyRead raw bytes from a Frida session via ptr(address).readByteArray. Returns hex; capped at 65536 bytes per call.
frida_memory_scanread-onlyScan process memory for a byte pattern via Frida Memory.scanSync. Searches a named module, an explicit address range, or all readable ranges by default. Pass async:true to scan in a background task (MCP 2.0 Tasks) and poll with tasks_get/tasks_result — broad scans survive past the default 15s CLI timeout.
frida_resumeResume a target previously spawned for early Frida instrumentation.
frida_run_scriptExecute a Frida JavaScript snippet inside an attached Frida session. By default each call spawns a fresh frida CLI that tears down when the script returns, so hooks and timer callbacks do NOT survive — pass keepAliveMs (sync, clamped to 25s) or async:true + keepAlive:true (background task) to park the script with recv().wait() so hooks stay armed for the window. A frida 17 API compatibility shim (Module.findExportByName, Process.getCurrentPid) is injected automatically; scripts that need file writes on Windows must use send() instead of new File().
frida_spawnSpawn a target through Frida for early instrumentation before normal execution. Until frida_resume succeeds, every tool call on a spawn session re-spawns the target (restarts the app on remote Android).
generate_hooksGenerate a Frida interceptor script for a list of symbols.
get_all_scriptsread-onlyList all scripts loaded by the page with optional source.
get_available_pluginsread-onlyList installed binary analysis plugins.
get_cache_statsread-onlyGet cache statistics: entries, sizes, hit rates, and cleanup recommendations.
get_call_stackread-onlyGet the current call stack.
get_collection_statsread-onlyGet collection, cache, and compression statistics.
get_detailed_dataread-onlyRetrieve large data by detailId. Supports slicing to prevent context window explosion.
get_object_propertiesread-onlyGet properties of an object by objectId.
get_offloaded_dataread-onlyRetrieve the original bytes of a field that was offloaded to disk (see the `_offload.path` in a placeholder). Returns base64 by default for binary blobs (e.g. decoded data: URIs); use encoding="utf8" for text.
get_scope_variables_enhancedread-onlyEnhanced scope variable inspection with deep object traversal.
get_script_sourceread-onlyRetrieve source code of a script by ID or URL pattern.
get_task_contextread-onlyRead persisted task handoff context and session insights.
get_token_budget_statsread-onlyGet token budget usage stats, warnings, and optimization suggestions.
getBatterygetElementByIdgetGamepadsgetItemghidra_analyzeAnalyze a binary and return metadata.
ghidra_bridgeSend a command to a Ghidra bridge. Two backends: the pip ghidra_bridge server (TCP 127.0.0.1:4768 — pip install ghidra_bridge, then in Ghidra run ghidra_bridge_server.py) or a REST bridge (HTTP 18080). Auto mode prefers the pip TCP server when it answers.
ghidra_decompileDecompile a single named function via a stateless Ghidra headless run (no bridge server or plugin needed; ~5-10s per call). Run ghidra_analyze first to list function names — the name must match exactly.
graphql_enum_schemaEnumerate GraphQL fields from server suggestion errors with introspection fallback.
graphql_extract_queriesread-onlyExtract GraphQL queries/mutations from captured network traces.
graphql_introspectRun GraphQL introspection and optional Apollo Federation _service.sdl probing.
graphql_replayReplay a GraphQL operation with optional variables, batch array, or Apollo persisted-query (APQ) extensions.
graphql_subscribeOpen a GraphQL subscription WebSocket, perform the graphql-transport-ws (or legacy graphql-ws) handshake, send a subscribe frame, and collect frames for collectMs. Runs in-page so the browser-session auth (cookies + connectionPayload) is preserved. Pairs with graphql_replay for targets that expose queries/mutations only via the authed WebSocket session.
grpc_export_captureExport captured gRPC / gRPC-Web calls to artifacts/captures as JSON or NDJSON.
grpc_frame_buildEncode one or more messages into a gRPC / gRPC-Web length-prefixed body. Inverse of grpc_frame_parse — for constructing test or replay bodies. Each message takes payloadHex plus optional compressed / isTrailer flags.
grpc_frame_parseSplit a captured gRPC / gRPC-Web body into its length-prefixed messages. Each message is 1 compressed-flag byte + 4-byte big-endian length + payload. Detects gRPC-Web trailer frames (flag bit 7) and the compression flag (bit 0). Lenient: a truncated trailing message is still emitted with a warning. Each message exposes payloadHex and payloadBase64 — feed payloadBase64 directly to protobuf_decode_raw to complete the gRPC decode chain (capture body -> grpc_frame_parse -> protobuf_decode_raw).
grpc_get_callsread-onlyGet captured gRPC / gRPC-Web calls with parsed message summaries. Set fullMessages=true to include the parsed message arrays (each carries payloadBase64 — feed to protobuf_decode_raw). Without fullMessages only per-call counts and flags are returned.
grpc_monitorcan change or delete dataEnable or disable live capture of gRPC / gRPC-Web calls. gRPC calls are detected by content-type application/grpc(-web)?(+proto)? on the HTTP/2 response. On loadingFinished the response body is pulled (base64) and split into length-prefixed messages; feed each message payloadBase64 to protobuf_decode_raw to complete the decode chain. Must be enabled before navigating so requests are captured from the start.
hook_presetInstall a pre-built JavaScript hook from 20+ built-in presets (eval, atob/btoa, Proxy, Reflect, Object.defineProperty, etc.), or provide customTemplate/customTemplates to install your own reusable hook bodies. Use listPresets=true to see all available preset descriptions.
http_plain_requestSend a raw HTTP request over plain TCP.
http_request_buildBuild a raw HTTP/1.x request payload.
http2_frame_buildBuild a raw HTTP/2 frame.
http2_frame_parseDecode a raw HTTP/2 frame (hex string) back into its header fields and type-specific payload (SETTINGS entries, PING opaque data, WINDOW_UPDATE increment, RST_STREAM/GOAWAY error codes, GOAWAY debug data). Inverse of http2_frame_build. Lenient: malformed payloads set decodeError but still return payloadHex.
http2_probeProbe an HTTP/2 endpoint.
human_mouseMove mouse along a Bezier curve with jitter.
human_scrollScroll with randomized speed and pauses to mimic human behavior.
human_typingType text with human-like speed and occasional typos.
icmp_echo_buildBuild a deterministic ICMPv4 echo request or reply payload with an automatically computed checksum.
ida_bridgeSend a command to an IDA Pro plugin bridge.
ida_decompileDecompile a function using IDA Pro.
indexeddb_dumpread-onlyExport IndexedDB databases and records. Supports keyRange queries (IDBKeyRange.bound/lower/upper), indexName (query a specific index), count (count-only mode), and cursor pagination (stream large stores in batches).
inject_dllInject a DLL into a target process. Requires elevated privileges. Target process and payload are validated before injection.
inject_shellcodeAllocate and execute raw shellcode in a target process. Requires elevated privileges. Target process and payload are validated before injection.
install_extensionInstall an extension from the remote registry.
instrumentation_artifactManage artifacts captured by instrumentation operations.
instrumentation_hook_presetApply hook presets inside an instrumentation session.
instrumentation_network_replayReplay a captured network request inside an instrumentation session.
instrumentation_operationManage operations inside an instrumentation session.
instrumentation_sessionStart, stop, or query status of an instrumentation recording session. Destroying a session archives it read-only (the last 8 destroyed sessions are retained, oldest evicted) so export/diff/merge/status can still inspect it.
instrumentation_session_diffread-onlyDiff two instrumentation session snapshots: operations added/removed/common (by id) plus artifact fingerprints and per-type counts. Pure compare, mutates nothing.
instrumentation_session_exportExport an instrumentation session snapshot to an artifacts JSON file.
instrumentation_session_mergeMerge two sessions into a new session: copies operations (with id remapping) and artifacts from both sources. Original sessions are untouched.
jadx_decompileDecompile an APK class or method with JADX CLI.
jadx_decompile_apkHigh-level JADX APK decompile: decompile the whole APK to a stable output directory and return sourcesDir for jadx_search_code.
jadx_search_coderead-onlyRipgrep-backed search over jadx output. Pass decompileDir for read-only search, or apkPath to auto-decompile to a temporary directory first.
js_analyze_vmAnalyze JSVMP/VM interpreter: dispatch type, handler table, opcode map.
js_bundle_searchFetch a remote JS bundle and search it with named regex patterns, with caching and noise filtering.
js_deobfuscate_jsvmpDeobfuscate JSVMP/VM-protected JavaScript: extract VM bytecode and restore original logic.
js_deobfuscate_pipelineThree-stage deobfuscation pipeline: preprocess → deobfuscate → humanize.
js_heap_searchread-onlySearch JS heap for strings matching a pattern.
js_solve_constraintsSolve opaque predicates and constant expressions in obfuscated code.
js_symbolic_executeSymbolic execution of JavaScript: explore all feasible execution paths, collect path constraints, and solve them. Best for control-flow-flattened code with complex branching.
js_symbolic_execute_jsvmpSymbolic execution of JSVMP bytecode: step through instructions symbolically to infer original logic, constraints, and confidence score. Use after js_analyze_vm to get instructions.
list_extension_workflowsread-onlyList runtime-loaded extension workflows from plugins/ or workflows/ directories.
list_extensionsread-onlyList all loaded plugins, workflows, and extension tools.
list_macrosread-onlyList all available macros.
list_page_snapshotsread-onlyList saved page snapshots.
llm_suggest_namesread-onlyUse LLM to suggest meaningful names for obfuscated identifiers.
logmaintenance_detect_gpuread-onlyDetect GPU family from WebGL/WebGPU renderer strings. Classifies into NVIDIA, AMD, Intel, Apple, Mali, Adreno, PowerVR, Vivante, Broadcom, Qualcomm, Microsoft. Pure-TS classifier — no browser needed. Provide at least one of webglRenderer, webgpuDescription, or deviceName.
manage_hooksCreate, inspect, and clear JavaScript runtime hooks.
manual_token_cleanupClear stale entries and reset counters to free 10-30% of token budget.
memory_allocatecan change or delete dataAllocate executable memory in target process (VirtualAllocEx wrapper). Win32 only. Requires JSHOOK_INJECTION_ENABLE=1.
memory_anticheat_detectread-onlyScan process imports for anti-debug/anti-cheat mechanisms: IsDebuggerPresent, NtQueryInformationProcess, timing checks (QPC, GetTickCount), thread hiding, heap flag checks, and DR register inspection. Each detection includes a bypass suggestion.
memory_antidetectionread-onlyAnti-detection hardening toolkit. Actions: check (run all detectors — kernel callbacks, instrumentation callback, AMSI/ETW status, chaos mode, platform info), harden (apply AMSI/ETW patches + process masquerade + self-defense — destructive), status (read-only current protection state). WARNING: harden action modifies process memory and mitigation policies. ProcessBreakOnTermination is PERMANENTLY DISABLED (stub — no BSOD risk). On non-Windows, returns platform info only.
memory_antidetection_checkread-onlyPre-flight anti-detection security audit. READ-ONLY — no patches or modifications. Checks: (1) ETW/AMSI patch status, (2) debugger attached to self via IsDebuggerPresent, (3) HVCI (Hypervisor-protected Code Integrity) and VBS (Virtualization-Based Security) status via registry, (4) known anti-cheat/EDR/AV/debugger processes via process enumeration. Returns a pass/warn/fail verdict with a 0-100 score, per-check results, and actionable recommendations. All checks are safe, user-mode, read-only operations. For actual hardening, use memory_antidetection action=harden.
memory_aob_scanread-onlyArray-of-Bytes scan with wildcard and operator support (CE 7.6 parity). Search for byte patterns like "48 8B ?? ?? 00 00" across readable memory. Supports hex bytes (00-FF, optional 0x prefix), "??" wildcards, and operators: >XX (greater than), <XX (less than), XX-YY (range inclusive). Example: "48 8B >40 <80 00 00" matches bytes >0x40 at position 2 and <0x80 at position 3. Case insensitive. Use regionFilter to restrict to specific modules or skip system modules.
memory_assembleAssemble x64 assembly instructions to machine code bytes (x64dbg inline assembler parity). Uses Keystone assembler via koffi FFI (keystone.dll) if available on Windows, with a built-in fallback opcode table for common instructions (NOP, RET, INT3, PUSH/POP, MOV, XOR, ADD, SUB, INC, DEC). assemble: compile ASM string to hex bytes. assemble_at: assemble + write directly to target process memory at address (destructive, audit trail recorded). Separate multiple instructions with semicolons or newlines. Max 256 instructions, 4096 assembled bytes.
memory_audit_exportExport the in-memory audit trail for memory operations as JSON.
memory_auto_assemblecan change or delete dataExecute a Cheat Engine-style Auto Assembler script. Parses [ENABLE]/[DISABLE] sections and executes ENABLE commands. Supported commands: ALLOC(name,size), DEALLOC(name), LABEL(name[,addr]), REGISTERSYMBOL(name), AOBSCAN(name,pattern), ASSERT(address,bytes), CREATETHREAD(address), DEFINE(name,value), FULLACCESS(address,size), READMEM(address,size), WRITEMEM(address,bytes). INCLUDE and LOADBINARY are rejected for security. Returns a disableScript for use with memory_auto_assemble_disable. Win32 only — requires native process access.
memory_auto_assemble_disablecan change or delete dataExecute the DISABLE section of a previously-run Auto Assembler script. Pass the disableScript returned by memory_auto_assemble. Executes DISABLE commands, running DEALLOC last (CE convention). Win32 only — requires native process access.
memory_batch_editcan change or delete dataWrite a value to ALL addresses in a scan session at once. Thin wrapper that iterates through the session address list and calls writeValue for each. Capped at 1000 addresses per call with a clear error when exceeded. Destructive — an audit trail entry is recorded for each write. Equivalent to GameGuardian's gg.editAll() or Cheat Engine's "Edit All".
memory_batch_writeWrite multiple memory patches at once. If pid is omitted, the active browser renderer PID is auto-discovered from the current browser session.
memory_bookmarkread-onlyManage address bookmarks for a process. Actions: add (bookmark an address with optional label and color), remove (delete a bookmark), list (show all bookmarks for the PID), clear (remove all bookmarks for the PID). Labels help categorize findings; colors use hex format (e.g. "#FF0000"). Bookmarks are scoped per PID. For long-term persistence, export via state_board_io with namespace "memory_bookmarks:<pid>".
memory_breakpointcan change or delete dataBreakpoint via hardware debug registers (DR0-DR3) or software INT3 (0xCC). Actions: set, remove, list, trace. Hardware BPs (type='hardware'): use x64 DR0-DR3, max 4 concurrent, support read/write/readwrite/execute. Software BPs (type='software'): use INT3 (0xCC) patching, unlimited count, execute-only. Two debugger modes: "win32" (default, uses DebugActiveProcess — freezes entire process) and "veh" (Vectored Exception Handler — injects shellcode, only faulting thread pauses). VEH mode is less intrusive but requires code injection which may be detected by anti-cheat systems. Conditional breakpo…
memory_call_stackread-onlyWalk the call stack of a target process thread using the x64 RBP frame-pointer chain. Suspends the thread, reads the CONTEXT to get RBP/RSP/RIP, then follows the linked list of saved_RBP / return_address frames via ReadProcessMemory. Resolves module names using Toolhelp32 module snapshots. Returns an array of {frameIndex, returnAddress, moduleName, functionName}. Equivalent to x64dbg's "standard" call stack mode. Win32 (x64) only — requires Administrator privileges.
memory_cheat_tableread-onlyImport, export, sign, or verify Cheat Engine .CT files. Export: converts JSON entries to valid .CT XML. Import: parses .CT XML to JSON. Sign: HMAC-SHA256 sign the XML using a secret (from JSHOOK_TABLE_SECRET env var, state_board "memory_ct_sign" secret key, or explicit "secret" arg). Verify: validate a signed table's HMAC signature. Addresses can be hex or module+offset.
memory_check_protectionCheck memory protection flags at a specific address. If pid is omitted, the active browser renderer PID is auto-discovered from the current browser session.
memory_code_cavesread-onlyFind code caves (runs of 0x00 or 0xCC) in executable sections of loaded modules. Returns largest caves first.
memory_dumpread-onlyDump memory region as hex with ASCII column. Outputs a formatted hex dump similar to xxd.
memory_dump_regionDump a process memory region to a binary file for offline analysis. If pid is omitted, the active browser renderer PID is auto-discovered from the current browser session.
memory_emulator_detectread-onlyDetect if a target process is a known console emulator (ArtMoney parity). Supports: PCSX2, Dolphin, RPCS3, Yuzu, Cemu, ePSXe, PPSSPP, xemu. Detection uses process name matching + optional module fingerprint confirmation. Returns emulator name, platform, and known memory region layout for emulator-mode scanning. Set list=true to enumerate all known emulators without a process check.
memory_find_accessesread-onlyFind what writes to or accesses a memory address (Cheat Engine MWT workflow). Sets a hardware breakpoint on the target address, auto-rearms after each hit, captures the faulting instruction address + context + timestamp, and optionally disassembles the instruction. Returns aggregated hits with per-hit instruction details.
memory_find_referencesread-onlyFind all references to an address in executable memory (x64dbg parity). Scans all executable regions for CALL rel32, JMP rel32, Jcc rel32, LEA [RIP+disp32], and MOV [RIP+disp32] instructions that reference the target address. Uses pure-TS byte-pattern heuristics — no Capstone dependency. Returns reference type, source address, disassembly, module name, and module offset. Optionally filter by module name.
memory_first_scanStart a new memory scan session.
memory_freecan change or delete dataFree remote memory in target process (VirtualFreeEx wrapper). Win32 only. Requires JSHOOK_INJECTION_ENABLE=1.
memory_freezecan change or delete dataFreeze or unfreeze a memory address. Freeze continuously writes a value to prevent changes; unfreeze stops it.
memory_freeze_exportread-onlyExport all active freeze entries as structured JSON. Returns an array of freeze entries with freezeId, pid, address, value, valueType, intervalMs, and active flag. Optional pid filter to scope the export to a single process. Pure data export — no workflow, no replay.
memory_generate_signatureread-onlyGenerate an update-resistant AOB (Array-of-Bytes) signature from bytes at a memory address. Detects relative offsets in CALL/JMP/LEA/Jcc instructions and replaces the displacement bytes with wildcards (??), making the signature survive minor code changes between updates. Uses byte-pattern heuristics — no Capstone dependency required.
memory_group_scanread-onlySearch for multiple values at known offsets simultaneously.
memory_guard_pagesread-onlyFind all memory regions with PAGE_GUARD protection in a process. Guard pages are often used as anti-tampering mechanisms or stack overflow detection.
memory_handle_enumread-onlyEnumerate all open handles in a target process via NtQuerySystemInformation. Returns handle value, object type, access mask, and object name for each handle. Filterable by type: File, Key, Process, Thread, Token, Section, etc. Useful for finding handles to protected resources and analyzing process security posture. Win32-only, admin required.
memory_heap_anomaliesread-onlyDetect heap anomalies: heap spray patterns (many same-size blocks), possible use-after-free (non-zero free blocks), and suspicious block sizes (0 or >100MB).
memory_heap_enumerateread-onlyEnumerate all heaps and heap blocks in a process via Toolhelp32 snapshot. Returns heap list with block counts, sizes, and overall statistics.
memory_heap_statsread-onlyGet detailed heap statistics with size distribution buckets (0-64B, 64B-1KB, 1-64KB, 64KB-1MB, >1MB), fragmentation ratio, and aggregate metrics.
memory_hypervisorEPT Hypervisor Phase 1: VMXON, VMCS setup, basic VM-exit handler design, CPUID spoofing. Intel VT-x only. Requires BYOVD kernel driver for MSR reads and VMXON region preparation. Gate: JSHOOK_HYPERVISOR_ENABLE=1 + admin. Actions: capabilities (detect VT-x/EPT/VPID, MSR values, Hyper-V conflicts), load (validate readiness + build VMCS config), unload (reset state), status (runtime state). NOTE: Actual VMXON/VMLAUNCH execution requires a kernel-mode component (not yet implemented). Phase 1 provides detection, configuration, and the exit-handler design.
memory_inject_dllcan change or delete dataInject a DLL into target process. Win32 only. Modes: loadlibrary (LoadLibraryW injection) or manualmap (manual mapping). Requires JSHOOK_INJECTION_ENABLE=1.
memory_inject_shellcodecan change or delete dataInject shellcode into target process. Win32 only. Methods: createremote (CreateRemoteThread) or ntcreatethread (NtCreateThreadEx). Requires JSHOOK_INJECTION_ENABLE=1.
memory_inline_hook_detectread-onlyDetect hooks in process modules. scanMode "inline" (default) compares the first 16 bytes of each exported function disk-vs-memory and recognises 8 hook patterns (JMP/CALL/short-jmp/MOV+JMP/MOV+CALL/PUSH+RET/INT3/padding). scanMode "iat" detects Import Address Table hooks (entries redirected outside their source module — evades inline detection, used by EasyHook/MinHook/Detours). scanMode "both" runs both scans.
memory_integrity_checkread-onlyCheck executable memory regions against their corresponding on-disk PE files (.text sections) to detect modifications like inline hooks or code patches.
memory_list_regionsList all memory regions in a process with protection flags. If pid is omitted, the active browser renderer PID is auto-discovered from the current browser session.
memory_list_typesread-onlyList all registered custom scan types.
memory_mono_assembliesread-onlyList Mono assemblies loaded in the root domain of a Unity/Mono process. Returns assembly name, address, and image address. Optionally filter by name substring.
memory_mono_classesread-onlyList Mono classes in a specific assembly from a Unity/Mono process. Reads the MonoImage type definition table (MONO_TABLE_TYPEDEF) and resolves class names from the string heap. Optionally filter by namespace.
memory_mono_detectread-onlyDetect Mono or IL2CPP runtime in a target process. Returns runtime kind (mono/il2cpp), module name, pointer size, and root domain address if resolved. Works on Unity games and other Mono/.NET applications.
memory_mono_fieldsread-onlyRead field values from a Mono object at the given address. Resolves the class via vtable pointer, walks MonoClass fields, and decodes each field value with type-aware heuristics (int, float, string pointer detection).
memory_mono_methodsread-onlyInspect method count for a Mono class in a Unity/Mono process. Full method name enumeration requires walking the MonoMethod table from MonoImage (not yet implemented — returns methodCount from the type definition table).
memory_mono_objectsread-onlyFind live Mono objects of a specific class in the managed heap. Resolves class vtable, then scans writable heap regions for vtable pointer matches. Returns object addresses with class name and estimated size.
memory_next_scanNarrow an existing scan session. Supports delta modes: changed_by (value changed by exactly N), increased_by (value increased by at least N), decreased_by (value decreased by at least N), changed_by_variable (returns per-address delta in results).
memory_parse_dumpParse a Windows Minidump (.dmp) file and extract forensic information: loaded modules (base/size/name/timestamp), threads (ID/stack/context), memory ranges (64-bit or 32-bit), system info (OS/CPU), and exception records. Optionally resolve a list of addresses against the dump contents. Pure TS — cross-platform (can analyze Windows dumps on Linux/macOS).
memory_patch_bytescan change or delete dataWrite bytes to target process at address. Saves original bytes for undo. Use for runtime code patching.
memory_patch_nopcan change or delete dataNOP out instructions at address (replace with 0x90). Useful for disabling checks or jumps.
memory_patch_undocan change or delete dataUndo a previous patch by restoring the original bytes.
memory_pe_headersread-onlyParse PE headers (DOS, NT, File, Optional) from a module base address in process memory. Returns machine type, entry point, image base, section count, and data directory info.
memory_pe_imports_exportsread-onlyParse import and/or export tables from a PE module in process memory. Returns DLL names, function names, ordinals, hints, and forwarded exports. Cross-platform: parses ELF .dynsym / Mach-O LC_SYMTAB from disk when moduleName is given on Linux/macOS.
memory_pointer_chainPointer chain operations: scan (multi-level BFS), autoscan (auto-discover pointer chains by recursively scanning for pointers that point to or near the target address), validate, resolve, or export as JSON. autoscan is Cheat Engine's "pointer scan" equivalent — no manual base/offsets needed.
memory_pointer_mapSave, load, or compare pointer maps for cross-instance filtering (Cheat Engine .PTR parity). save: serialize pointer scan results to a .ptr.json file in <project>/.ptr/. load: deserialize a pointer map from file. compare: load 2+ pointer map files and find addresses that appear in ALL maps — the CE "rescan across multiple instances" workflow for finding stable pointer chains.
memory_pointer_scanread-onlyFind pointers to a target address.
memory_process_controlread-onlySuspend or resume a target process for consistent memory snapshots. Suspend freezes all threads (NtSuspendProcess on Win32, SIGSTOP on Linux, task_suspend on macOS) so memory reads/scans see a consistent state. Resume thaws all threads. Useful before memory_dump or memory_first_scan for processes with actively-changing memory. Cross-platform.
memory_protectcan change or delete dataChange memory page protection for a region in the target process. Wraps VirtualProtectEx (Win32) / mprotect (Linux) / mach_vm_protect (macOS). Protection: r (read-only), rw (read-write), rx (read-execute), rwx (all), none (no-access). Returns the old protection. Destructive — audit trail recorded.
memory_readRead memory from a process at a specific address. Requires elevated privileges. If pid is omitted, the active browser renderer PID is auto-discovered from the current browser session.
memory_read_typedread-onlyRead process memory as typed numeric values with explicit endianness. Decodes consecutive values starting at address via koffi endian-sensitive integer types (uint64_le / int32_be / …) — no manual byte swapping needed. 64-bit values are returned as decimal strings alongside two's-complement hex. float/double use IEEE-754 with the requested endianness. Supports up to 1024 consecutive values. Ideal for struct inspection, big-endian network payloads, and game memory analysis.
memory_region_compareread-onlyCompare two memory regions byte-by-byte and return a diff summary. Equivalent to Cheat Engine's compareMemory(). Returns identical flag, diff count, and per-offset differences (byte1, byte2). Max compare size: 64KB.
memory_region_enumerateread-onlyEnumerate memory regions in a target process. Cross-platform: Windows (VirtualQueryEx), macOS (mach_vm_region), Linux (/proc/pid/maps). Returns base address, size, protection (r/w/x/rw/rx/rwx), state, type (image/mapped/private), and module name (if module-backed). Emulator mode (mode="emulator"): use with memory_emulator_detect to get emulator-specific memory region descriptors (EE RAM for PCSX2, MEM1/MEM2 for Dolphin, etc.) and filter results.
memory_register_typeread-onlyRegister a custom value type for memory scanning (Cheat Engine parity). Registered types can be used as valueType in memory_first_scan, memory_unknown_scan, etc. Types are session-scoped (live as long as the domain handler instance).
memory_remoteConnect to a remote jshookmcp MCP server via WebSocket for remote debugging. Enables ceserver-style remote memory operations: connect to a remote instance, forward tool calls (memory read/write, process enumerate, etc.), and receive results. Uses JSON-RPC 2.0 over WebSocket with auth token support and auto-reconnect. Actions: connect (establish WebSocket link), disconnect (tear down), status (connection state + stats), forward (proxy a tool call to the remote instance).
memory_reverse_mwtread-onlyReverse memory write trace — given a code address, find what data addresses the instruction accesses. Inverse of memory_find_accesses. Disassembles the instruction at the given address using Capstone, then resolves RIP-relative and absolute memory operands to their target addresses. Returns instruction text, raw bytes, and a list of accessed addresses with access type (READ/WRITE/RIP_REL). Useful for understanding what data a specific piece of code operates on.
memory_rtti_inforead-onlyParse MSVC RTTI (Run-Time Type Information) at an object address. Reads vtable pointer, follows the Complete Object Locator chain, extracts class name, base classes, and class hierarchy descriptor. Equivalent to CE's "Find out what addresses this code accesses" for type discovery — quickly answer "what type is this object?" without a full structure analysis. Only works on MSVC x64 binaries with RTTI enabled.
memory_scanScan process memory for a pattern or value. Requires elevated privileges. If pid is omitted, the active browser renderer PID is auto-discovered from the current browser session.
memory_scan_filteredRefine a previous memory scan with filtered addresses. If pid is omitted, the active browser renderer PID is auto-discovered from the current browser session.
memory_scan_sessionManage scan sessions. Actions: list (all sessions), delete (by sessionId), export (as JSON).
memory_search_stringread-onlySearch process memory for strings matching a pattern. Wraps memory_first_scan with valueType=string for convenience and adds substring/regex post-filtering. Optionally also searches for UTF-16LE (wide) strings.
memory_session_exportread-onlyExport a scan session's complete state as structured JSON. Returns sessionId, pid, valueType, addresses[], values{}, and metadata. Pure data export — no workflow, no replay. Addresses are capped at 100K with a truncated flag when the cap is hit.
memory_speedhackcan change or delete dataHook time APIs (GetTickCount64/GetTickCount/QueryPerformanceCounter/QueryPerformanceFrequency/timeGetTime/GetSystemTimeAsFileTime) to scale process time via an in-process SSE2 trampoline. time via an in-process SSE2 trampoline. Actions: apply (hook + set speed), set (adjust speed without re-hooking), restore (unhook and restore original functions). Speed range 0.01–100x; values outside this range are rejected to avoid destabilising the target.
memory_structure_analyzeread-onlyAnalyze memory at an address to infer data structure layout.
memory_structure_compareread-onlyCompare struct instances to identify differing vs constant fields. Two modes: (1) Pairwise—compare address1 vs address2. (2) Group comparison (CE dissect data parity)—pass arrays of addresses in group1Addresses and group2Addresses. Group mode computes per-offset statistics and classifies fields as: between_groups (differs across groups—likely gameplay state), within_group (varies within groups—dynamic), constant_all (same everywhere—likely vtable, type flags). Returns confidence scores.
memory_structure_export_cread-onlyExport an inferred structure as a C-style struct definition, ReClass.NET XML, Rust #[repr(C)], or C# [StructLayout] with explicit FieldOffset attributes. C export auto-detects composite types (Vector3, Matrix4x4, pointer arrays).
memory_trace_codecan change or delete dataUltimap-style instruction-level code tracing. Sets INT3 (0xCC) software breakpoints at function entry points and logs every execution. Aggregates hit counts per address to produce a hot-code-path heat map. Win32-only — requires the Win32 debug API (DebugActiveProcess). Provide either "addresses" (list of specific hex addresses) or "startAddress" + "size" (range to scan for 0x55 push-rbp prologues). Max trace time: 30s, max hits: 10000.
memory_type_defineread-onlyOverride field types in an inferred structure. Actions: set (define a type at offset+size), list (show all overrides), clear (remove all overrides). Overrides are applied in subsequent memory_structure_analyze calls. Supported types: int8, uint8, int16, uint16, int32, uint32, int64, uint64, float, double, pointer, string_ptr, vtable_ptr, hex, padding, unknown.
memory_unknown_scanStart an unknown initial value scan.
memory_unregister_typeread-onlyRemove a registered custom scan type by name.
memory_vtable_parseread-onlyParse a vtable to enumerate virtual function pointers and resolve them to module+offset. Also attempts RTTI parsing for class name and inheritance hierarchy.
memory_watchread-onlyPoll a memory address until its value changes (like scanmem's "watch" command). Reads the current value, then polls at a configurable interval. Returns immediately with the old value, new value, and elapsed time when a change is detected. If no change occurs within the timeout, returns the unchanged value and a hint. Useful for "tell me when this variable changes" workflows.
memory_writeWrite data to process memory at a given address. If pid is omitted, the active browser renderer PID is auto-discovered from the current browser session.
memory_write_historycan change or delete dataUndo or redo the last memory write operation. Pass pid to scope the operation to a specific process — per-PID undo prevents reverting an unrelated process's write when multiple processes are being edited concurrently.
memory_write_valuecan change or delete dataWrite a typed value to a memory address. Supports undo/redo via memory_write_history(action=undo|redo).
miniapp_pkg_analyzeAnalyze an unpacked miniapp package.
miniapp_pkg_scanScan local directories for miniapp package files.
miniapp_pkg_unpackUnpack a miniapp package.
mojo_decode_messageread-onlyDecode a Mojo IPC hex payload into a structured field map.
mojo_encode_messageread-onlyEncode a structured Mojo IPC message into a hex payload.
mojo_ipc_capabilitiesread-onlyReport Mojo IPC monitoring availability.
mojo_list_interfacesread-onlyList discovered Mojo IPC interfaces and their pending message counts.
mojo_messages_getread-onlyRetrieve captured Mojo IPC messages from the active monitoring session.
mojo_messages_summarizeread-onlyAggregate the captured Mojo IPC buffer (non-destructive) into interface/method/direction breakdowns, top-N lists, and a capture time window. Does not drain the buffer.
mojo_monitorStart or stop Mojo IPC monitoring for the active Chromium-based target.
mojo_verify_liveread-onlyGenerate a Frida verification script that probes a target Chromium process for known Mojo C-API exports (MojoWriteMessage, MojoWriteMessageNew) across modules. Uses a curated symbol database covering Chromium M96+ across Win32, Linux, and macOS. Returns a ready-to-run Frida script and probe metadata. Honest boundary (B-class): symbol DB is manually curated; symbols may vary by build config. Verified flag is always false — confirm against the live binary.
native_bridge_statusread-onlyCheck native bridge backend health.
native_symbol_syncExport native symbols to connected analysis backends. Supports json/csv/idc/sqlite output; an optional sinceHash requests an incremental export (only changed symbols) from backends that support it.
nemu_alloc_memoryAllocate raw guest memory (NOT a JNI handle — a real char* address). Optionally fill with initial data via fillBytes (base64). Returns the guest address to pass as an integer arg to call_symbol. Use at the start of a session to stage encrypted blobs for a native decrypt/signing routine, then read the output with nemu_read_memory.
nemu_bind_all_importsBatch-bind host functions to ALL resolved import stubs in the GOT. Reads the GOT table (0x74000 range), finds every unique resolved address, and binds the given JS function body to each. Call after load_library to mock every unresolved shell import at once.
nemu_bind_host_fnRegister a JavaScript host function at a specific guest address, overriding any existing stub. The function receives guest registers (ctx.x(0)..x(7)), can read/write guest memory (ctx.read/ctx.write), and returns a BigInt value placed in x0. Use to mock custom shell imports at their resolved GOT addresses.
nemu_bytecode_decoderead-onlyDecode a u32 LiteVM bytecode word into its opcode fields: group (G0-G7), sub-opcode, a1 register index, fl field index, imm signed offset, and validity. Matches the Python LiteVM Opcode.is_valid_opcode() semantics. No session needed — pure computation. Use to understand what a native bytecode word means without external scripts.
nemu_bytecode_scanread-onlyScan a guest memory region and decode all valid LiteVM bytecode words. Reads `count` u32 words starting at `address`, decodes each one, and returns only the valid opcodes with their offsets. Much faster than manual decode+filter — one call to survey an entire bytecode table.
nemu_call_addressCall a function at an arbitrary guest address (e.g. a native method registered via RegisterNatives). Uses AArch64 AAPCS with args in x0..x7; returns x0. Set injectJni=true to prepend guest JNIEnv* as x0 + thiz=0 as x1 (standard JNI method convention).
nemu_call_jni_exportInvoke an exported `Java_*` JNI function. Injects the guest `JNIEnv*` and thiz, then the Java arguments. Returns x0 — an int/jboolean directly, or a jobject/jbyteArray/jstring handle to resolve via read_byte_array. The main entry point for reversing a native signing/crypto routine.
nemu_call_symbolInvoke an exported function by name following AArch64 AAPCS (integer args in x0..x7, result in x0). Auto-detects JNI signatures. Set injectJni=false to force raw arguments. Set debug=true for auto-NOP on NULL indirect calls + auto TLS prep.
nemu_capabilitiesread-onlyReport native-emulator backend availability, supported features, and explicit ISA/SIMD gaps. Unsupported opcodes fail loudly instead of being reported as emulated.
nemu_create_jni_handleCreate a mock JNI object handle pre-populated with controlled data. Use BEFORE calling JNI functions to seed the handle table so that GetStringUTFChars / GetObjectArrayElement / GetIntField return expected values. Returns the handle id to pass as an argument to nemu_call_address or nemu_call_symbol.
nemu_create_sessionCreate an isolated ARM64 emulator session and return its sessionId. Each session owns its own CPU registers, guest stack, and JNI object table, so concurrent analyses never interfere. Destroy it with nemu_destroy_session when done; idle sessions auto-expire. Pass `files` to populate the virtual device filesystem (path→base64 content) so native code can fopen/fread assets like jiagu_config directly from the emulated FS.
nemu_create_vtableCreate a C++ vtable-backed object in guest memory. Allocates a vtable with `numSlots` entries (each pointing to a return-0 host stub) and an object that points to it. Use when native code does direct vtable dispatch (BLR X8 through [obj+offset]) — common in obfuscated SO files calling virtual methods on C++ objects. Returns {objectAddr, vtableAddr} for use with nemu_call_address/nemu_call_symbol.
nemu_data_dumpread-onlyRead a guest memory region and format it as a structured table of u32 or u64 values. Each row shows offset, hex value, ASCII preview, and optional annotations. Auto-classifies each word as pointer, bytecode, ASCII, or raw data. Pointers are resolved to show target data when possible.
nemu_destroy_sessioncan change or delete dataDestroy an emulator session and free its memory (mapped library, stack, JNI tables).
nemu_disassembleread-onlyDisassemble instructions. Two modes: (1) single-instruction — pass `opcode` (a number, 0x hex string, or hex bytes) and optional `pc`; no session needed. (2) batch — pass `sessionId`, `vaddr`, and `count`; reads `count` 4-byte words from guest memory starting at `vaddr` and returns a `{pc, opcode, asm}[]` list. Batch supports fixed-width ISAs only (arm64/aarch64, riscv32/riscv64, mips/mips32/mipsel); x86/x64 are rejected. A local lightweight decoder for trace readability, including common SSE/AVX/AVX2/AVX-512 EVEX, RISC-V, and MIPS instructions.
nemu_dlsym_diagread-onlyRead the dlsym resolution log from the current session. Tracks every symbol lookup the emulated code requested via dlsym() — essential for discovering which VM handler names an obfuscated dispatch engine tries to resolve. Actions: read (default, reads+clears), snapshot (read-only), clear.
nemu_dump_frameread-onlyRead and decode a CreateLitevm frame structure from guest memory. Parses the 256-byte frame fields: chain pointer, bytecode count, frame data, and sub-function flags. Essential for understanding the VM dispatch state at any point during execution.
nemu_dump_gotread-onlyDump the PLT trampoline → GOT → symbol mapping for an AArch64 ELF shared object. Scans .text for the 4-instruction trampoline pattern (adrp x16 → ldr x17 → add x17,x16,x17 → br x17) used by obfuscated SO files and cross-references each slot against dynamic relocations to resolve the callee name. Use this when you need to know what "bl 0xACD0" actually calls without manual readelf + Python scripting.
nemu_extract_apk_libsread-onlyList the loadable arm64-v8a native libraries (.so) packaged inside an APK, with their byte sizes. Use nemu_load_apk_library to load one. Note: libapp.so (Flutter Dart AOT) is listed but is not executable here — route it to the Dart layer.
nemu_gdbserverGDB Remote Serial Protocol (RSP) TCP server. Starts a real TCP server on host:port that GDB clients can connect to. Provides full register read/write, memory read/write, step, continue, software breakpoints (Z0/z0), vCont extended step/continue, qXfer target description, thread listing, and feature negotiation (qSupported). The server dispatches commands to the nemu emulator session in real-time. Packet format: $data#checksum (RFC 5.1 GDB Remote Serial Protocol). Actions: start (launch TCP server), stop (shut down), status (server + clients). Note: step/continue are simulated (PC += 4, immedia…
nemu_get_jni_stubread-onlyGet the guest stub address for a JNI table index. Pass a specific `index` to look up one entry (returns 0 + bound=false if the index was never bound), or omit to return all bound index→stubAddress mappings. Use to read stub addresses from a session so they can be written into SO caches or external tooling that expects specific JNI function addresses (especially the extended indices 280-336 used by obfuscation VM dispatch bridges).
nemu_inspect_importsread-onlyInspect an AArch64 ELF .so before emulation and list imported symbols from dynamic relocations, including GOT offsets and whether each import is backed by the built-in bionic stubs. Use this to diagnose PLT/GOT NULL indirect-call failures without writing ad-hoc readelf/Capstone scripts.
nemu_jni_diagread-onlyRead the JNI diagnostic log for a session. Tracks every JNI function call (FindClass, GetMethodID, CallIntMethod, etc.) and unimplemented stub invocations. Use after nemu_call_symbol or nemu_trace to see what Java methods the native code tried to call. Actions: "read" (default) reads and clears the log; "snapshot" reads without clearing; "clear" clears without returning.
nemu_jni_handlesread-onlyList all JNI object handles allocated in a session, with their kind and summary. Handles are opaque IDs (jclass, jstring, jbyteArray, jobject) that native code passes around. Use to verify mock setups and debug handle leaks. Optionally filter by kind (e.g. "class", "string", "bytes", "method", "field", "auto-object", "mock-int", "mock-string", "mock-boolean", "objarray") or by specific handle number.
nemu_list_sessionsread-onlyList active emulator sessions with their creation and last-use timestamps.
nemu_list_symbolsread-onlyList the exported function symbols of the loaded library — the names callable via call_symbol / call_jni_export.
nemu_load_apk_libraryExtract a specific arm64-v8a .so from an APK by name and load it into a session in one step (no temp files). Pair with nemu_extract_apk_libs to discover library names.
nemu_load_libraryLoad an AArch64 ELF shared object (.so) from a filesystem path into a session, mapping its segments and resolving exported symbols. Prerequisite for list_symbols / call_symbol / call_jni_export.
nemu_load_library_chainLoad a chain of dependent libraries into a session, resolving inter-library imports. Pass dependency .so paths as dependencyPaths (loaded first in order), then the primary .so path. Each dependency exports are visible to the primary and later dependencies. Use this for FFmpeg-style multi-library loads where libijkplayer.so calls exports from libijkffmpeg.so and libijksdl.so.
nemu_mem_inspectSingle convergence entry point for the guest-memory inspection family — one tool, five `action` subcommands, each mapping 1:1 onto an existing read-only memory tool (which remains available unchanged): read → nemu_read_memory (raw bytes as base64 preview/data), dump → nemu_data_dump (u32/u64 word table with pointer/bytecode/ASCII classification), chain → nemu_pointer_chain (follow pointer indirection hops), frame → nemu_dump_frame (decode a 256-byte CreateLitevm frame), scan → nemu_scan_memory (byte-pattern search over an address range, pattern as base64). Each subcommand accepts exactly the p…
nemu_mem_mapMap a memory region in guest address space. Use to extend the mapped area for output buffers or scratch data that would otherwise cause unmapped-memory faults. Idempotent — safe to call on already-mapped regions.
nemu_mem_shadowAdd a shadow memory overlay at a specific address. Reads from shadow take priority over underlying memory — use to provide mock data at addresses that would otherwise crash (e.g. address 0 where SO ELF header resides). Does NOT modify the underlying SO mapping.
nemu_new_byte_arrayWrap base64 bytes as a JNI jbyteArray handle to pass as an argument into call_jni_export (e.g. the plaintext a signing routine consumes). Returns the handle.
nemu_patch_applyApply multiple memory patches in a single call. Each patch is {address, dataBase64, writeProtect?}. Faster than repeated nemu_write_memory calls — essential for atomic code patches that must be applied together to avoid intermediate corrupt states.
nemu_pointer_chainread-onlyWalk a chain of pointers in guest memory. Starting from `base`, reads a u64 pointer, then follows it to the next address, repeating up to `maxDepth` times. At each hop, shows the address, the pointer value, and the first 32 bytes of data there. Essential for understanding CreateLitevm's x24 table indirection structure.
nemu_prepare_tlsread-onlyMap the TPIDR_EL0 (thread-pointer) TLS block so its memory is accessible for pre-population via nemu_write_regions. Returns the TLS base address. Use this before writing data to TLS offsets (e.g. frame-table pointer at +0x1768) that native code reads via mrs xN, tpidr_el0; ldr xM, [xN, #large_offset].
nemu_read_byte_arrayread-onlyResolve a jbyteArray handle (e.g. a native call's return value) back to its bytes, returned as base64 plus length.
nemu_read_memoryread-onlyRead raw bytes from guest memory at a given address. Returns a bounded preview by default; set includeDataBase64=true for full base64 within the configured cap.
nemu_regs_restoreRestore GPR registers from a previously-saved snapshot (created by nemu_regs_save). Partially restores: only registers that were saved are written back. Use after an obfuscated function call to recover decode/context registers.
nemu_regs_saveSave a named snapshot of current GPR registers (x0-x30, sp). Returns a snapshot id usable with nemu_regs_restore. The snapshot persists until the session is destroyed or the name is overwritten. Use to preserve registers before calling an obfuscated function that corrupts callee-saved state.
nemu_relayConnect to a remote native-emulator session via IPC relay. Proxies nemu operations through a named pipe (Windows) or Unix domain socket (Linux/macOS) with JSON-RPC over length-prefixed frames. Use to drive ARM64 nemu sessions on a Linux host from a Windows MCP server (or vice versa).
nemu_scan_memoryScan emulated memory for a byte pattern (like Volatility). Searches a guest address range for an exact byte match using Boyer-Moore-Horspool. Returns a list of matched addresses. Skips unmapped regions silently — use nemu_mem_map to extend the scan range if needed.
nemu_session_inforead-onlyInspect one emulator session without executing native code. Returns timestamps, exported symbols, unresolved imports, constructor faults, and active session count.
nemu_session_loadLoad a JSON-serialised array of tool calls and execute them sequentially to set up a session. Each entry is {tool, args}. Supported tools: alloc_memory, write_regions, call_address, call_symbol, prepare_tls, setup_java_mocks, map_memory, bind_host_fn. Use this to replay a debug session from a saved JSON plan without repeating ~20 manual MCP calls.
nemu_set_pac_keyConfigure the ARMv8.3 Pointer Authentication key set used by PACIA/PACIB/AUTIA/AUTIB/PACGA instructions in this emulator session. Set a 128-bit key (32 hex chars) by key slot (ia/ib/da/db/ga) to match keys dumped from a real device via Frida. Note: the emulator signs with an 8-bit PAC field and a 32→64 duplicated modifier, so AUT of pointers signed by real hardware verifies as a mismatch (stripped in-place, control flow preserved) — round-trips inside the emulator stay self-consistent.
nemu_set_registersSet arbitrary CPU registers by index. Pass an object mapping register number to value (e.g. {0: 0x60000000, 10: 0, 11: 0x55150}). Supports x0-x30 and floating-point d0-d31. Use to fix up loop variables or inject context pointers before/after host function calls.
nemu_set_vtable_slotOverride a specific vtable slot with a custom host function. The slot at vtableAddr + slotIndex*8 is rewritten to point to a stub executing `fnBody` (JS, with ctx.x/ctx.writeU64/ctx.persistReg etc.). Use to mock specific C++ virtual methods after creating a vtable with nemu_create_vtable.
nemu_setup_java_fieldRegister a mock Java field the emulated native code reads back via JNI (GetFieldID/GetStaticFieldID + Get<Type>Field). Declaratively specify the value with valueInt, valueString, or valueBytes (base64) — the 'Java world' constant a native routine folds into its result. No code is executed.
nemu_setup_java_mockRegister a mock Java method for JNI callbacks. returnInt/returnString/returnBytes for single constant; returnMap (JSON) for per-key dispatch: first Java arg matched as key→{type,value}. Single-constant is fallback for unmatched keys.
nemu_setup_java_mocksBatch-register multiple Java method mocks in one call. Each entry in the array has the same fields as nemu_setup_java_mock: className, methodName, signature, plus one return value (returnInt, returnString, returnBytes, returnObject, returnArray, or returnMap). Use this to define the full mock chain without rebuilding jshook.
nemu_traceInvoke an exported symbol while recording every instruction executed (pc, opcode, step), optionally snapshotting named registers per step. Bounded by maxSteps. Use to follow the control flow / algorithm of an obfuscated native function.
nemu_vm_state_compareCompare native VM state (read from guest memory) against an expected state (e.g. Python LiteVM dump). For each of ctx, table, and output, reports whether they match and lists the first mismatches. Use to cross-validate native VM execution against the known-good Python implementation.
nemu_vm_state_dumpread-onlyDump LiteVM state from guest memory at specified base addresses. Reads ctx (32×64-bit), table (32×64-bit), and optional output buffer. Returns structured hex values suitable for comparison with Python LiteVM dumps. Use after nemu_call_symbol to inspect native VM execution results.
nemu_vm_state_loadLoad VM state into guest memory. Takes ctx values and table values as hex strings and writes them at the specified base addresses. Use to bridge Python LiteVM state into native VM: run Python vm.run(), dump ctx/table as hex, then load into nemu guest memory before calling bb2i34u32clsb.
nemu_write_memoryWrite raw bytes into guest memory at a given address via base64 data. Use to update an input buffer between call_symbol invocations without re-allocating, or to patch code/data in place.
nemu_write_regionsWrite multiple memory regions in a single call. Accepts an array of {address, dataBase64} objects. Essential for atomic code patching: apply all patches in one call to avoid intermediate corrupt states.
nemu_xor_regionXOR a region of emulated memory with a single-byte key. Returns the XOR result as base64. Use for quick decryption testing — XOR a buffer with a candidate key byte and inspect the preview without modifying guest state. Set dryRun=false to write the XOR result back into guest memory.
net_raw_tcp_listenListen on a local TCP port for one incoming connection.
net_raw_tcp_sendSend raw TCP data to a remote host; accepts hex or text input.
net_raw_udp_listenListen on a local UDP port for an incoming datagram.
net_raw_udp_sendSend a raw UDP datagram and wait for a response.
network_bot_detect_analyzeread-onlyAnalyze captured requests for bot-detection signals. Optionally supply a JA3/JA4 TLS fingerprint (from network_tls_fingerprint parse_client_hello) plus user-defined knownBad hash lists; matching hashes raise the bot score. Ships NO hardcoded feature library — the caller decides which hashes are bot-like.
network_disablecan change or delete dataDisable network request monitoring
network_enableEnable network request monitoring.
network_export_harExport captured network traffic as HAR.
network_extract_authExtract authentication data from captured network requests.
network_get_requestsGet captured network requests.
network_get_response_bodyGet the response body for a captured request.
network_get_statsread-onlyGet network statistics.
network_get_statusread-onlyGet network monitoring status.
network_http2_fingerprintCompute an Akamai-style HTTP/2 fingerprint from one or more captured HTTP/2 frames (the client connection preface: SETTINGS + stream-0 WINDOW_UPDATE + any PRIORITY frames). Returns the canonical "<settings>|<window_update>|<priority>" string, a sha256 hash, and the structured fields (settings entries, window update increment, priorities). Ships NO hardcoded feature library — the structured fields are authoritative; the caller decides what is "bad". Pair with network_tls_fingerprint for full client identity.
network_icmp_proberead-onlyRun an ICMP echo probe.
network_interceptManage network interception rules.
network_latency_statsMeasure repeated latency and compute percentile stats.
network_monitorManage network request monitoring.
network_replay_requestReplay a captured network request with optional changes.
network_rtt_measureMeasure round-trip time to a target URL.
network_tls_fingerprintCompute TLS/HTTP fingerprints for bot detection. compute_tls/compute_http build fingerprints from user-supplied lists; parse_client_hello parses a raw ClientHello record (hex) and emits JA3 + JA4 from the real wire bytes; analyze_request links a captured requestId.
network_tracerouteread-onlyRun an ICMP traceroute.
page_backNavigate back in browser history.
page_block_scriptManage script blocking rules by URL pattern. Blocked scripts are prevented from loading/executing. Actions: add/block (add a rule), remove/unblock (remove a rule), list (show all rules), clear (remove all).
page_clickClick a page element by CSS selector.
page_cookiescan change or delete dataManage page cookies; clear requires matching expectedCount.
page_coverage_startread-onlyStart JS+CSS code coverage collection on the active page. Coverage tracks which bytes of each loaded script/stylesheet are actually executed. Use page_coverage_stop to stop collection and retrieve results.
page_coverage_stopread-onlyStop coverage collection and return per-script JS+CSS coverage results. Includes total bytes, used bytes, and coverage percentage per URL.
page_emulate_deviceEmulate a mobile device profile.
page_evaluateExecute JavaScript in page context.
page_forwardNavigate forward in browser history.
page_handle_dialogControl how JavaScript dialogs (alert/confirm/prompt/beforeunload) are answered. By default installs a persistent handler that auto-dismisses all dialogs. Set dismissAll=false for one-shot handling of the next dialog.
page_hoverHover over an element by CSS selector.
page_inject_scriptInject JavaScript to run on every page load.
page_list_framesread-onlyList page frames for frame targeting.
page_local_storageRead, write, delete, or clear localStorage entries for the current origin.
page_navigateNavigate the page to a URL with wait and network options.
page_press_keySimulate a key press by name.
page_reloadReload the current page.
page_screenshotread-onlyCapture a page or element screenshot.
page_script_registerRegister a named reusable JS snippet in the Script Library. Execute with page_script_run.
page_script_runExecute a named script from the Script Library with optional runtime params (__params__).
page_scrollScroll to absolute or relative coordinates.
page_selectSelect option(s) in a <select> element.
page_session_storageRead, write, delete, or clear sessionStorage entries for the current origin.
page_set_viewportSet the browser viewport dimensions.
page_storage_inforead-onlyQuery navigator.storage.estimate() for {usage, quota} and navigator.storage.persisted() to inspect the origin storage budget and persistence status (offline/PWA reverse engineering).
page_typeType text into an element.
page_upload_filesUpload one or more local files into an <input type="file"> element.
page_wait_for_selectorread-onlyWait for an element to appear.
payload_mutateApply deterministic byte-level mutations to a hex payload.
payload_template_buildBuild a deterministic payload from field definitions.
pcap_readread-onlyRead a classic PCAP file and return compact deterministic packet summaries. PCAPNG is intentionally not supported.
pcap_writeWrite a compact classic PCAP file from deterministic packet byte records.
pcapng_readread-onlyRead a PCAPNG (pcap-ng) capture file and return structured Section/Interface/Packet blocks. Supports Section Header, Interface Description, Enhanced/Simple Packet, Name Resolution, and Interface Statistics blocks; unknown block types are surfaced as warnings. For multi-MB captures pass async:true to parse in a background task (MCP 2.0 Tasks) and poll with tasks_get/tasks_result instead of blocking this call.
pcapng_writeWrite a PCAPNG (pcap-ng) capture file from one or more interfaces and deterministic packet byte records. Emits a Section Header Block, an Interface Description Block per interface, and an Enhanced Packet Block per packet.
performance_get_metricsread-onlyGet page performance metrics.
performance_traceStart or stop a Chrome performance trace.
platform_capabilitiesread-onlyReport platform tool backend availability.
process_check_debug_portCheck if a process has a debug port enabled for CDP attachment.
process_detect_apcDetect APC (Asynchronous Procedure Call) injection in a process. Enumerates threads, probes each thread APC queue via NtQueryInformationThread(ThreadApcState), and detects threads in alertable wait state (SleepEx/WaitForMultipleObjectsEx). Returns verdict (clean/suspicious/infected), confidence score, and risk reasons. Requires elevated privileges (run as Administrator). Win32 only.
process_detect_hollowingDetect process hollowing (malware technique that unmaps original process image and injects malicious code). Compares process memory sections (.text, .data, .rdata) with on-disk PE file using SHA-256 hashes. Returns detection result with confidence score and list of differing sections. WARNING: autoRestore=true is HIGH RISK, may crash the target process, and is Win32-only. Cross-platform: Win32 compares PE sections; Linux/macOS compare ELF/Mach-O executable sections via IntegrityScanner (autoRestore unavailable).
process_enum_handlesEnumerate open handles for a process using NtQuerySystemInformation. Resolves handle type and object name, decodes access masks, identifies security risks (high-privilege handles to sensitive processes, dangerous Token handles, inheritable sensitive handles, Section handles to executables). Skips name resolution for File/EtwRegistration types (known to hang). Requires elevated privileges (run as Administrator). Win32 only.
process_enum_threadsEnumerate all threads in a process. Returns thread IDs, with optional per-thread context and diagnostics. Cross-platform: Win32 uses CreateToolhelp32Snapshot; Linux reads /proc/{pid}/task; macOS uses `ps -M`.
process_findSearch for processes by name pattern. Returns a list of matching processes with PID, name, path, and window information.
process_getGet detailed information about a specific process by PID, including command line, parent PID, and debug port status.
process_hollowing_scanread-onlyPure-TS static hollowing indicator scan. Analyses /proc/pid/maps (RWX regions), /proc/pid/exe (deleted backing file), and PE headers (suspicious section names, RWX sections, entry point anomalies, mismatched binary path) without requiring native OS APIs. Complements process_detect_hollowing (which does live memory comparison). Provide at least one of: mapsContent, exeLink, peHex, or expectedImagePath. Honest boundary: Win32 live detection needs native API — use process_detect_hollowing for confirmed detection.
process_killTerminate a process by PID. Requires appropriate privileges.
process_launch_debugLaunch an executable with remote debugging port enabled.
process_listList all running processes. This is an alias for process_find with an empty pattern.
process_resumeResume a previously suspended process. Cross-platform: NtResumeProcess (Win32), SIGCONT (Linux), task_resume (macOS).
process_suspendSuspend a process for forensic snapshotting. Cross-platform: NtSuspendProcess (Win32), SIGSTOP (Linux), task_suspend (macOS). Pair with process_resume to restore. Use before memory_scan/dump for a consistent snapshot. Requires admin/root on most platforms.
process_windowsGet all window handles for a process.
profiler_cpuStart or stop CPU profiling.
proto_auto_detectread-onlyAuto-detect a protocol pattern from one or more hex payload samples.
proto_define_patternDefine a protocol pattern with delimiter, byte order, and field layout.
proto_dissect_dnsread-onlyDissect a raw DNS payload (RFC 1035 + EDNS(0)) into header flags, questions, answers, authorities, and additionals with full compression-pointer handling and OPT pseudo-record decoding.
proto_dissect_httpread-onlyDissect a raw HTTP/1.x request or response payload (RFC 7230) into the start line, headers, and body. Unwinds chunked transfer-encoding and reports Content-Length / Content-Type / Content-Encoding hints.
proto_export_schemaread-onlyExport a protocol pattern to a schema definition. format: proto (default, .proto-like text), ksy (Kaitai Struct for Wireshark/010 Editor), json-schema (draft-07).
proto_fingerprintread-onlyIdentify protocol type from hex payload samples.
proto_infer_fieldsread-onlyInfer likely protocol fields from repeated hex payload samples.
proto_infer_state_machineread-onlyInfer a protocol state machine from captured message sequences.
proto_visualize_stateread-onlyGenerate a Mermaid state diagram from a protocol state machine definition.
querySelectorquerySelectorAllrequestAnimationFrameroute_toolOne-stop tool router: accepts a natural language task description, returns recommended tools and next actions. Automatically detects workflow patterns, recommends activation order, and provides example arguments. Use this instead of search_tools when you want guided tool discovery with actionable next steps.
search_toolsDescription is built at runtime.
sendBeaconsetIntervalsetItemsetTimeoutskia_correlate_objectsCorrelate requested Skia node identifiers with the extracted scene tree.
skia_detect_rendererDetect the active Skia renderer backend from the current page context.
skia_extract_sceneExtract a lightweight Skia scene tree from the selected canvas.
tcp_openOpen a TCP session.
warnwebgpu_adapter_infoGet WebGPU adapter information (vendor, architecture, device). Used for fingerprinting GPU capabilities and detecting hardware-level vulnerabilities.
webgpu_capture_commandsCapture GPU command queue submissions (render passes, compute dispatches). Used for analyzing GPU workload and detecting malicious shader behavior.
webgpu_error_captureCapture WebGPU validation/out-of-memory/internal errors the target app swallows (via device uncapturederror), plus the current device.lost state. Optionally wraps createBuffer/createTexture in error scopes to attribute failures to specific calls. Surfaces the real diagnostics behind "empty buffer" / "zero draw call" symptoms.
webgpu_frame_timingMeasure per-frame CPU and GPU cost over a rAF loop using GPU timestamp queries (device.limits.timestampPeriod conversion). Answers "how long did the GPU take" and "CPU-bound vs GPU-bound". Degrades to CPU round-trip timing with precision=cpu-roundtrip when the timestamp-query feature is unavailable.
webgpu_memory_layoutAnalyze GPU memory allocations and buffer usage. Identifies memory layout patterns that may be vulnerable to side-channel attacks. With track=true, snapshots are stored on the shared state board (webgpu_memory_<canvasId>) and the response includes the delta vs the previous snapshot plus the growth rate in KB/s.
webgpu_pipeline_dumpEnumerate active render/compute pipelines, bind-group layouts, and render-pass descriptors by hooking GPUDevice createRenderPipeline / createComputePipeline / createBindGroupLayout (plus async variants). Captures the full descriptor (vertex/fragment entry points, buffer stride/attributes, bind-group layout entries, visibility) so a captured bindGroups index can be resolved to actual resources.
webgpu_shader_compileCompile WGSL shader and extract metadata (entry points, bindings, attributes). Validates shader code and detects potential security issues.
webgpu_shader_disassembleParse WGSL or SPIR-V shader into AST and generate human-readable disassembly. Used for reverse engineering shader logic. SPIR-V input (hex/base64) is reflected into entry points, bindings, structs, and locations without compilation.
webgpu_shader_source_captureCapture WGSL shader sources a running app compiles via GPUDevice.createShaderModule — the only artifact revealing what a compute/render pipeline computes (e.g. physics vs. cryptominer). Pairs with webgpu_capture_commands to reconstruct what data each draw/dispatch operated on.
webgpu_timing_analysisGPU timing analysis for side-channel detection. Measures GPU command execution time variance to detect cache-based side-channel attacks (Graz University 2025 research).
Compare and alternatives
Featured in
Signals
- Stars
- 2,060
- Forks
- 458
- Open issues
- 2
- Contributors
- 2
- Weekly downloads
- 605
- Last commit
- Oct 24, 2026 (4 days ago)
- Last release
- Oct 10, 2026 (18 days ago)
- Last package publish
- Oct 9, 2026 (19 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.vmoranv/jshookmcp- Version
- 0.4.2
- Auth
- No auth
- Packages
- npm @jshookmcp/jshook
- License
- AGPL-3.0
- Repository
- github.com/vmoranv/jshookmcp
- Website
- vmoranv.github.io/jshookmcp/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Jshookmcp MCP server. Agent Mart. https://agentmart.dev/connectors/vmoranv-jshookmcp (last updated 2026-10-24)