mate.build.signatures module¶
- class mate.build.signatures.ArgPointsToAggregateSelector(index: int)¶
Bases:
mate.build.signatures.SignatureSelector
- Parameters
index (int) –
- Return type
None
- argument_types: List[type] = [<class 'int'>]¶
- class mate.build.signatures.ArgPointsToSelector(index: int)¶
Bases:
mate.build.signatures.SignatureSelector
- Parameters
index (int) –
- Return type
None
- argument_types: List[type] = [<class 'int'>]¶
- class mate.build.signatures.ArgReachableSelector(index: int)¶
Bases:
mate.build.signatures.SignatureSelector
- Parameters
index (int) –
- Return type
None
- argument_types: List[type] = [<class 'int'>]¶
- class mate.build.signatures.ArgSelector(index: int)¶
Bases:
mate.build.signatures.SignatureSelector
- Parameters
index (int) –
- Return type
None
- argument_types: List[type] = [<class 'int'>]¶
- class mate.build.signatures.DataflowSignature(function: Pattern, tags: List[str], fromSelectors: Dict[str, List[SignatureSelector]], toSelectors: List[SignatureSelector], deallocator: Optional[str])¶
Bases:
mate.build.signatures.Signature
- Parameters
function (Pattern) –
tags (List[str]) –
fromSelectors (Dict[str, List[SignatureSelector]]) –
toSelectors (List[SignatureSelector]) –
deallocator (Optional[str]) –
- Return type
None
- apply_to_cpg(build: mate_query.db.Build, cpg: mate_query.db.Graph, session: sqlalchemy.orm.session.Session, check_duplicates: bool = True) None ¶
- Parameters
build (mate_query.db.Build) –
cpg (mate_query.db.Graph) –
session (sqlalchemy.orm.session.Session) –
check_duplicates (bool) –
- Return type
None
- class mate.build.signatures.FormatSpecifier(param_no: 'Optional[ParamNo]', flags: 'str', width: "Optional[Union[int, Literal['*']]]", precision: "Optional[Union[int, Literal['*'], ParamNo]]", type_modifier: 'Optional[str]', conversion: 'str')¶
Bases:
object
- Parameters
param_no (Optional[mate.build.signatures.ParamNo]) –
flags (str) –
width (Optional[Union[int, Literal['*']]]) –
precision (Optional[Union[int, Literal['*'], mate.build.signatures.ParamNo]]) –
type_modifier (Optional[str]) –
conversion (str) –
- Return type
None
- conversion: str¶
- flags: str¶
- param_no: Optional[mate.build.signatures.ParamNo]¶
- precision: Optional[Union[int, Literal['*'], mate.build.signatures.ParamNo]]¶
- type_modifier: Optional[str]¶
- width: Optional[Union[int, Literal['*']]]¶
- class mate.build.signatures.FormatStringReadSelector(index: int)¶
Bases:
mate.build.signatures.SignatureSelector
- Parameters
index (int) –
- Return type
None
- argument_types: List[type] = [<class 'int'>]¶
- class mate.build.signatures.FormatStringWriteSelector(index: int)¶
Bases:
mate.build.signatures.SignatureSelector
- Parameters
index (int) –
- Return type
None
- argument_types: List[type] = [<class 'int'>]¶
- class mate.build.signatures.GlobalSelector(global_name: str)¶
Bases:
mate.build.signatures.SignatureSelector
- Parameters
global_name (str) –
- Return type
None
- argument_types: List[type] = [<class 'str'>]¶
- class mate.build.signatures.InputSignature(function: Pattern, tags: List[str], selectors: List[SignatureSelector])¶
Bases:
mate.build.signatures.Signature
- Parameters
function (Pattern) –
tags (List[str]) –
selectors (List[SignatureSelector]) –
- Return type
None
- apply_to_cpg(build: mate_query.db.Build, cpg: mate_query.db.Graph, session: sqlalchemy.orm.session.Session, check_duplicates: bool = True) None ¶
- Parameters
build (mate_query.db.Build) –
cpg (mate_query.db.Graph) –
session (sqlalchemy.orm.session.Session) –
check_duplicates (bool) –
- Return type
None
- exception mate.build.signatures.InvalidSignature(message: str = 'Invalid signature')¶
Bases:
Exception
- Parameters
message (str) –
- Return type
None
- class mate.build.signatures.OutputSignature(function: Pattern, tags: List[str], selectors: List[SignatureSelector])¶
Bases:
mate.build.signatures.Signature
- Parameters
function (Pattern) –
tags (List[str]) –
selectors (List[SignatureSelector]) –
- Return type
None
- apply_to_cpg(build: mate_query.db.Build, cpg: mate_query.db.Graph, session: sqlalchemy.orm.session.Session, check_duplicates: bool = True) None ¶
- Parameters
build (mate_query.db.Build) –
cpg (mate_query.db.Graph) –
session (sqlalchemy.orm.session.Session) –
check_duplicates (bool) –
- Return type
None
- class mate.build.signatures.ParamNo(num: 'int')¶
Bases:
object
- Parameters
num (int) –
- Return type
None
- num: int¶
- class mate.build.signatures.ReturnPointsToAggregateSelector¶
Bases:
mate.build.signatures.SignatureSelector
- argument_types: List[type] = []¶
- class mate.build.signatures.ReturnPointsToSelector¶
Bases:
mate.build.signatures.SignatureSelector
- argument_types: List[type] = []¶
- class mate.build.signatures.ReturnReachableSelector¶
Bases:
mate.build.signatures.SignatureSelector
- argument_types: List[type] = []¶
- class mate.build.signatures.ReturnSelector¶
Bases:
mate.build.signatures.SignatureSelector
- argument_types: List[type] = []¶
- class mate.build.signatures.Signature¶
Bases:
abc.ABC
- abstract apply_to_cpg(build: mate_query.db.Build, cpg: mate_query.db.Graph, session: sqlalchemy.orm.session.Session, check_duplicates: bool) None ¶
- Parameters
build (mate_query.db.Build) –
cpg (mate_query.db.Graph) –
session (sqlalchemy.orm.session.Session) –
check_duplicates (bool) –
- Return type
None
- class mate.build.signatures.SignatureSelector¶
Bases:
abc.ABC
- argument_types: List[type]¶
- classmethod parse_arguments(arguments: List[Union[int, str]]) mate.build.signatures.SignatureSelector ¶
- Parameters
arguments (List[Union[int, str]]) –
- Return type
- exception mate.build.signatures.UnknownSignature(message: str = 'Unknown signature')¶
Bases:
Exception
- Parameters
message (str) –
- Return type
None
- mate.build.signatures.load_signatures(raw_sigs: Dict[str, List[Any]]) List[mate.build.signatures.Signature] ¶
- Parameters
raw_sigs (Dict[str, List[Any]]) –
- Return type
- mate.build.signatures.parse_cpg_signature(function: Pattern, signame: str, sigcontent: Dict) Signature ¶
- Parameters
function (Pattern) –
signame (str) –
sigcontent (Dict) –
- Return type
- mate.build.signatures.parse_dataflow_signature(function: Pattern, sigcontent: Dict) DataflowSignature ¶
- Parameters
function (Pattern) –
sigcontent (Dict) –
- Return type
- mate.build.signatures.parse_dataflow_type(dataflow_spec: Dict[str, Any]) Dict[str, List[mate.build.signatures.SignatureSelector]] ¶
Extracts the dataflow type and its consituent selectors.
The return value is a dictionary with one key for each value in _DATAFLOW_TYPES, whose value is a list of signature selectors corresponding to that dataflow type.
- Parameters
dataflow_spec (Dict[str, Any]) –
- Return type
Dict[str, List[mate.build.signatures.SignatureSelector]]
- mate.build.signatures.parse_input_signature(function: Pattern, sigcontent: Dict) InputSignature ¶
- Parameters
function (Pattern) –
sigcontent (Dict) –
- Return type
- mate.build.signatures.parse_output_signature(function: Pattern, sigcontent: Dict) OutputSignature ¶
- Parameters
function (Pattern) –
sigcontent (Dict) –
- Return type
- mate.build.signatures.parse_selector(selector: Dict[str, Any]) mate.build.signatures.SignatureSelector ¶
- Parameters
selector (Dict[str, Any]) –
- Return type
- mate.build.signatures.process_cpg_signatures(signatures: List[mate.build.signatures.Signature], build: mate_query.db.Build, cpg: mate_query.db.Graph, session: sqlalchemy.orm.session.Session, check_duplicates: bool) None ¶
- Parameters
signatures (List[mate.build.signatures.Signature]) –
build (mate_query.db.Build) –
cpg (mate_query.db.Graph) –
session (sqlalchemy.orm.session.Session) –
check_duplicates (bool) –
- Return type
None