CallsMatchingParam object defines the parameters used to search for and annotate function calls in a binary.
It is used with methods like ProjectHandle:calls_matching to filter and analyze call sites based on function names, predicates, and dataflow annotations.
Fields
| Field | Description | Type |
|---|---|---|
to | Function(s) to identify in the binary | string, AddressValue, or CallsToQuery |
where | Predicate function to filter function calls | fun(caller: FunctionContext) |
using | Lua expression specifying parameter annotations for the dataflow engine | Lua expression |
debug | Enables debug logs for the matching process | boolean |
Reference
to
The function(s) to identify in the binary. It can be a string (function name), anAddressValue (function address), or a CallsToQuery with pattern matching options.
where
A Lua function used to filter function calls. Receives aFunctionContext object and should return true for calls to include.
using
A Lua expression specifying how to annotate parameters and callees for dataflow analysis.parametersassigns annotations to the parameters of the function being analyzed. . For example:parameters = {var:named "src", var:named "dst"}calleesassigns annotations to parameters and return values of functions called within the analyzed function. For examplecallees = { FunctionName = {output = ..., inputs = {...}} }
Do not use the same annotation name multiple times.
debug
If set totrue, enables debug logging for the matching process.
Example
The following example finds all calls tomemcpy in functions named target that also call malloc.
It annotates parameters and callees for dataflow tracking.