angr.errors 源代码

# pylint:disable=missing-class-docstring
from __future__ import annotations


[文档] class AngrError(Exception): pass
[文档] class AngrRuntimeError(RuntimeError): pass
[文档] class AngrValueError(AngrError, ValueError): pass
[文档] class AngrLifterError(AngrError): pass
[文档] class AngrExitError(AngrError): pass
[文档] class AngrPathError(AngrError): pass
[文档] class AngrVaultError(AngrError): pass
[文档] class PathUnreachableError(AngrPathError): pass
[文档] class SimulationManagerError(AngrError): pass
[文档] class AngrInvalidArgumentError(AngrError): pass
[文档] class AngrSurveyorError(AngrError): pass
[文档] class AngrAnalysisError(AngrError): pass
[文档] class AngrBladeError(AngrError): pass
[文档] class AngrBladeSimProcError(AngrBladeError): pass
[文档] class AngrAnnotatedCFGError(AngrError): pass
[文档] class AngrBackwardSlicingError(AngrError): pass
[文档] class AngrCallableError(AngrSurveyorError): pass
[文档] class AngrCallableMultistateError(AngrCallableError): pass
[文档] class AngrSyscallError(AngrError): pass
[文档] class AngrSimOSError(AngrError): pass
[文档] class AngrAssemblyError(AngrError): pass
[文档] class AngrTypeError(AngrError, TypeError): pass
[文档] class AngrMissingTypeError(AngrTypeError): pass
# Congruency check failure
[文档] class AngrIncongruencyError(AngrAnalysisError): pass
# # ForwardAnalysis errors #
[文档] class AngrForwardAnalysisError(AngrError): pass
[文档] class AngrSkipJobNotice(AngrForwardAnalysisError): pass
[文档] class AngrDelayJobNotice(AngrForwardAnalysisError): pass
[文档] class AngrJobMergingFailureNotice(AngrForwardAnalysisError): pass
[文档] class AngrJobWideningFailureNotice(AngrForwardAnalysisError): pass
# # CFG errors #
[文档] class AngrCFGError(AngrError): pass
# # VFG Errors and notices #
[文档] class AngrVFGError(AngrError): pass
[文档] class AngrVFGRestartAnalysisNotice(AngrVFGError): pass
# # Data graph errors #
[文档] class AngrDataGraphError(AngrAnalysisError): # TODO: deprecated pass
[文档] class AngrDDGError(AngrAnalysisError): pass
# # Loop analysis #
[文档] class AngrLoopAnalysisError(AngrAnalysisError): pass
# # Exploration techniques #
[文档] class AngrExplorationTechniqueError(AngrError): pass
[文档] class AngrExplorerError(AngrExplorationTechniqueError): pass
[文档] class AngrDirectorError(AngrExplorationTechniqueError): pass
[文档] class AngrTracerError(AngrExplorationTechniqueError): pass
# # VariableRecovery errors #
[文档] class AngrVariableRecoveryError(AngrAnalysisError): pass
# # AngrDB errors #
[文档] class AngrDBError(AngrError): pass
[文档] class AngrCorruptDBError(AngrDBError): pass
[文档] class AngrIncompatibleDBError(AngrDBError): pass
# # Tracer #
[文档] class TracerEnvironmentError(AngrError): pass
# # Simulation errors #
[文档] class SimError(Exception): bbl_addr = None stmt_idx = None ins_addr = None executed_instruction_count = None guard = None
[文档] def record_state(self, state): self.bbl_addr = state.scratch.bbl_addr self.stmt_idx = state.scratch.stmt_idx self.ins_addr = state.scratch.ins_addr self.executed_instruction_count = state.history.recent_instruction_count self.guard = state.scratch.guard return self
# # State-related errors #
[文档] class SimStateError(SimError): pass
[文档] class SimMergeError(SimStateError): pass
[文档] class SimMemoryError(SimStateError): pass
[文档] class SimMemoryMissingError(SimMemoryError):
[文档] def __init__(self, missing_addr, missing_size, *args): super().__init__(missing_addr, missing_size, *args) self.missing_addr = missing_addr self.missing_size = missing_size
[文档] class SimAbstractMemoryError(SimMemoryError): pass
[文档] class SimRegionMapError(SimMemoryError): pass
[文档] class SimMemoryLimitError(SimMemoryError): pass
[文档] class SimMemoryAddressError(SimMemoryError): pass
[文档] class SimFastMemoryError(SimMemoryError): pass
[文档] class SimEventError(SimStateError): pass
[文档] class SimPosixError(SimStateError): pass
[文档] class SimFilesystemError(SimError): pass
[文档] class SimSymbolicFilesystemError(SimFilesystemError): pass
[文档] class SimFileError(SimMemoryError, SimFilesystemError): pass
[文档] class SimHeapError(SimStateError): pass
# # Error class during VEX parsing #
[文档] class SimUnsupportedError(SimError): pass
# # Solver-related errors #
[文档] class SimSolverError(SimError): pass
[文档] class SimSolverModeError(SimSolverError): pass
[文档] class SimSolverOptionError(SimSolverError): pass
[文档] class SimValueError(SimSolverError): pass
[文档] class SimUnsatError(SimValueError): pass
# # SimIROp errors #
[文档] class SimOperationError(SimError): pass
[文档] class UnsupportedIROpError(SimOperationError, SimUnsupportedError): pass
# # SimIRExpr errors #
[文档] class SimExpressionError(SimError): pass
[文档] class UnsupportedIRExprError(SimExpressionError, SimUnsupportedError): pass
[文档] class SimCCallError(SimExpressionError): pass
[文档] class UnsupportedCCallError(SimCCallError, SimUnsupportedError): pass
[文档] class SimUninitializedAccessError(SimExpressionError):
[文档] def __init__(self, expr_type, expr): SimExpressionError.__init__(self) self.expr_type = expr_type self.expr = expr
def __repr__(self): return f"SimUninitializedAccessError (expr {self.expr} is used as {self.expr_type})" def __reduce__(self): return (SimUninitializedAccessError, (self.expr_type, self.expr))
# # SimIRStmt errors #
[文档] class SimStatementError(SimError): pass
[文档] class UnsupportedIRStmtError(SimStatementError, SimUnsupportedError): pass
[文档] class UnsupportedDirtyError(UnsupportedIRStmtError, SimUnsupportedError): pass
[文档] class SimMissingTempError(SimValueError, IndexError): pass
# # Engine-related errors #
[文档] class SimEngineError(SimError): pass
[文档] class SimIRSBError(SimEngineError): pass
[文档] class SimTranslationError(SimEngineError): pass
[文档] class SimProcedureError(SimEngineError): pass
[文档] class SimProcedureArgumentError(SimProcedureError): pass
[文档] class SimShadowStackError(SimProcedureError): pass
[文档] class SimFastPathError(SimEngineError): pass
[文档] class SimIRSBNoDecodeError(SimIRSBError): pass
[文档] class AngrUnsupportedSyscallError(AngrSyscallError, SimProcedureError, SimUnsupportedError): pass
UnsupportedSyscallError = AngrUnsupportedSyscallError
[文档] class SimReliftException(SimEngineError):
[文档] def __init__(self, state): super().__init__() self.state = state
# # SimSlicer errors #
[文档] class SimSlicerError(SimError): pass
# # SimAction errors #
[文档] class SimActionError(SimError): pass
# # SimCC errors #
[文档] class SimCCError(SimError): pass
# # UCManager errors #
[文档] class SimUCManagerError(SimError): pass
[文档] class SimUCManagerAllocationError(SimUCManagerError): pass
# # SimUnicorn errors #
[文档] class SimUnicornUnsupport(SimError): pass
[文档] class SimUnicornError(SimError): pass
[文档] class SimUnicornSymbolic(SimError): pass
# # Call-stack Errors #
[文档] class SimEmptyCallStackError(SimError): pass
# # SimStateOptions Errors #
[文档] class SimStateOptionsError(SimError): pass
# # Errors that may be handled by exception handling #
[文档] class SimException(SimError): pass
[文档] class SimSegfaultException(SimException, SimMemoryError):
[文档] def __init__(self, addr, reason, original_addr=None): self.addr = addr self.reason = reason self.original_addr = original_addr super(SimSegfaultError, self).__init__(f"{addr:#x} ({reason})")
def __repr__(self): return "SimSegfaultException({:#x} ({}{})".format( self.addr, self.reason, (f", original {self.original_addr.__repr__(max_depth=3)}") if self.original_addr is not None else "", ) def __reduce__(self): return (SimSegfaultException, (self.addr, self.reason, self.original_addr))
SimSegfaultError = SimSegfaultException
[文档] class SimZeroDivisionException(SimException, SimOperationError): pass
[文档] class AngrNoPluginError(AngrError): pass
# # Concrete Targets Execution errors #
[文档] class SimConcreteMemoryError(AngrError): pass
[文档] class SimConcreteRegisterError(AngrError): pass
[文档] class SimConcreteBreakpointError(AngrError): pass
# # Decompiler errors #
[文档] class AngrDecompilationError(AngrError): pass
[文档] class UnsupportedNodeTypeError(AngrError, NotImplementedError): pass