functionslisted
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