angr.analyses.patchfinder

class angr.analyses.patchfinder.OverlappingFunctionsAnalysis

Bases: Analysis

Identify functions with interleaved blocks.

__init__()
overlapping_functions: dict[int, list[int]]
class angr.analyses.patchfinder.FunctionAlignmentAnalysis

Bases: Analysis

Determine typical function alignment

__init__()
alignment: int | None
class angr.analyses.patchfinder.AtypicallyAlignedFunction

Bases: object

AtypicallyAlignedFunction(function: ‘Function’, expected_alignment: ‘int’)

function: Function
expected_alignment: int
__init__(function, expected_alignment)
Parameters:
Return type:

None

class angr.analyses.patchfinder.PatchedOutFunctionality

Bases: object

PatchedOutFunctionality(patched_function: ‘Function’, patched_out_function: ‘Function’)

patched_function: Function
patched_out_function: Function
__init__(patched_function, patched_out_function)
Parameters:
Return type:

None

class angr.analyses.patchfinder.PatchFinderAnalysis

Bases: Analysis

Looks for binary patches using some basic heuristics: - Looking for interleaved functions - Looking for unaligned functions

__init__()
atypical_alignments: list[AtypicallyAlignedFunction]
possibly_patched_out: list[PatchedOutFunctionality]