mate.poi.analysis.PointerDisclosure module

class mate.poi.analysis.PointerDisclosure.PointerDisclosure

Bases: mate.poi.poi_types.Analysis

run(session: Session, graph: db.Graph, _inputs: Dict[str, Any]) Iterator[POIGraphsPair]
Parameters
Return type

Iterator[POIGraphsPair]

class mate.poi.analysis.PointerDisclosure.PointerDisclosurePOI(*, insight: str, source: str = None, sink: str = None, salient_functions: List[mate_common.models.analyses.SalientFunction] = [])

Bases: mate_common.models.analyses.POI

This POI represents a potential pointer address leak to a public output.

It consists of an LLVM pointer value and an output signature where that pointer might be leaked to the user.

Parameters
Return type

None

insight: str

A human-readable piece of “insight” for the POI, in Markdown format.

salient_functions: List[SalientFunction]

A list of SalientFunction models.

Each POI analysis determines which, if any, functions to include in this list.

sink: Optional[str]

A human readable location string for the “sink” of the POI.

source: Optional[str]

A human readable location string for the “source” of the POI.

mate.poi.analysis.PointerDisclosure.compute_cfl_pointer_disclosure(session: Session, cpg: db.Graph) Iterable[Tuple[Instruction, Instruction, List[OutputSignature]]]
Parameters
Return type

Iterable[Tuple[Instruction, Instruction, List[OutputSignature]]]

mate.poi.analysis.PointerDisclosure.compute_pointer_disclosure(session: Session, cpg: db.Graph) Iterable[Tuple[Instruction, OutputSignature]]
Parameters
Return type

Iterable[Tuple[Instruction, OutputSignature]]