Skip to main content
Glama

resolve_symbol

Find memory addresses of functions or symbols in game modules for reverse engineering and hooking operations.

Instructions

Resolve a symbol to its address. Args: module_name: Name of the module containing the symbol symbol_name: Name of the symbol/function Returns: Address of the symbol.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
module_nameYes
symbol_nameYes

Implementation Reference

  • The primary handler for the 'resolve_symbol' MCP tool. It uses a Frida script to call Module.findExportByName to resolve the symbol address in the specified module and returns it or an error.
    @mcp.tool() def resolve_symbol(module_name: str, symbol_name: str) -> Dict[str, Any]: """ Resolve a symbol to its address. Args: module_name: Name of the module containing the symbol symbol_name: Name of the symbol/function Returns: Address of the symbol. """ global _session if not _session.is_attached(): return {"error": "Not attached. Use attach() first."} try: script_code = f""" var addr = Module.findExportByName("{module_name}", "{symbol_name}"); send(JSON.stringify(addr ? {{address: addr.toString()}} : {{error: "Symbol not found"}})); """ result_data = [] def on_message(message, data): if message['type'] == 'send': result_data.append(message['payload']) script = _session.session.create_script(script_code) script.on('message', on_message) script.load() script.unload() import json result = json.loads(result_data[0]) if result_data else {"error": "No response"} result["module"] = module_name result["symbol"] = symbol_name return result except Exception as e: return {"error": f"Failed to resolve symbol: {str(e)}"}
  • The resolve_symbol tool is registered/listed in the capabilities under the 'module_information' category in the list_capabilities tool.
    "module_information": [ "list_modules", "get_module_info", "get_module_exports", "get_module_imports", "resolve_symbol" ], "function_hooking": [ "hook_function", "unhook_function", "replace_function", "hook_native_function", "list_hooks", "intercept_module_function" ], "debugging": [ "set_breakpoint", "remove_breakpoint", "list_breakpoints", "read_registers" ], "script_management": [ "load_script", "unload_script", "call_rpc" ], "window_interaction": [ "list_windows", "screenshot_window", "screenshot_screen", "send_key_to_window", "focus_window" ], "standard": [ "list_capabilities", "get_documentation", "check_installation" ] }, "total_tools": 42 }
  • The resolve_symbol tool is used as a helper in the intercept_module_function tool to resolve the function address before hooking it.
    result = resolve_symbol(module_name, function_name) if "error" in result: return result return hook_function(result["address"], on_enter, on_leave, f"{module_name}!{function_name}")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/0xhackerfren/frida-game-hacking-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server