← ClaudeAtlas

functionslisted

Find and list functions in a binary by name, address, regex, or byte pattern. Use as the starting point for binary analysis, to locate specific functions, or to enumerate all functions matching criteria.
vulhunt-re/skills · ★ 15 · AI & Automation · score 58
Install: claude install-skill vulhunt-re/skills
# Functions Find and list functions in a binary by name, address, or pattern. ## When to use - Find a function by name or address - List all functions matching a regex or byte pattern - Get function metadata (address, size) - Search for functions that match specific criteria (e.g., functions that call a certain API) ## Instructions Using the VulHunt MCP tools, open the project (`open_project`) and run the following Lua query (`query_project`), adapting it as needed: ```lua local fs = project:functions(<target_function>) -- Single result (FunctionContext) if type(fs) ~= "table" then return { function_name = tostring(fs.name), function_address = tostring(fs.address), function_total_bytes = tostring(fs.total_bytes) } end -- Multiple results (FunctionContext[]) local results = {} for _, f in ipairs(fs) do table.insert(results, { function_name = tostring(f.name), function_address = tostring(f.address), function_total_bytes = tostring(f.total_bytes) }) end return results ``` Possible values for `<target_function>`: - A string, e.g. `"system"` - An AddressValue - VulHunt APIs return addresses as an AddressValue - To build an AddressValue, use for example: `AddressValue.new(0x1234)` - A regex, e.g. `{matching = "<regex>", kind = "symbol", all = true}` - A byte pattern, e.g. `{matching = "41544155", kind = "bytes", all = true}` If no argument is passed to `project:functions()`, all functions are returned > `all` is a boolean