foxdec-0.1.0.0: Formally Verified x86-64 Decompilation
Safe HaskellSafe-Inferred
LanguageHaskell2010

WithNoAbstraction.SymbolicExecution

Description

 
Synopsis

Documentation

traceTop :: p -> a -> a Source #

cimmediate :: (Integral i, BinaryClass bin) => Static bin v -> i -> SValue Source #

cwiden :: BinaryClass bin => Static bin v -> String -> SValue -> SValue Source #

cjoin_all :: Foldable t => BinaryClass bin => Static bin v -> String -> t SValue -> SValue Source #

lookup_finit :: Integral a => (a, b, L0 pred finit v, a) -> finit Source #

calias :: (Eq a, Eq a) => p -> a -> a -> a -> a -> Bool Source #

csensitive :: BinaryClass p => (p, b, c, d) -> SPointer -> Maybe ByteSize -> SValue -> Bool Source #

cis_local :: BinaryClass bin => (bin, b, c, d) -> SPointer -> Bool Source #

mapMaybeS :: Ord b => (a -> Maybe b) -> Set a -> Set b Source #

mapMaybeNES :: Ord b => (a -> Maybe b) -> NESet a -> Set b Source #

param :: (Eq a, Num a) => a -> Register Source #

external_function_behavior :: String -> ExternalFunctionBehavior Source #

a list of some function that return a heap-pointer through RAX. The pointer is assumed to be fresh.

transpose_bw_svalue :: BinaryClass bin => Static bin v -> Sstate SValue SPointer -> SValue -> SValue Source #

Backward transposition Let p be the current predicate and let the equality sp == v be from the predicate after execution of an internal function. For example, p contains: RSP == RSP0 - 64 RSI == 10

And after execution of the function, we have: *[RSP0+16,8] == RSI0

Transposing this equality produces: *[RSP0-40,8] == 10

call :: BinaryClass bin => Static bin v -> Instruction -> State (Sstate SValue SPointer, VCS SValue) () Source #

Executes semantics for external functions.

Orphan instances

BinaryClass bin => WithAbstractSymbolicValues (Static bin v) SValue SPointer Source # 
Instance details

Methods

sseparate :: Static bin v -> String -> SPointer -> Maybe ByteSize -> SPointer -> Maybe ByteSize -> Bool Source #

senclosed :: Static bin v -> SPointer -> Maybe ByteSize -> SPointer -> Maybe ByteSize -> Bool Source #

salias :: Static bin v -> SPointer -> Maybe ByteSize -> SPointer -> Maybe ByteSize -> Bool Source #

ssensitive :: Static bin v -> SPointer -> Maybe ByteSize -> SValue -> Bool Source #

sread_from_ro_data :: Static bin v -> SPointer -> Maybe ByteSize -> Maybe SValue Source #

smk_mem_addresses :: Static bin v -> String -> SValue -> Set SPointer Source #

sjoin_values :: Foldable t => Static bin v -> String -> t SValue -> SValue Source #

swiden_values :: Static bin v -> String -> SValue -> SValue Source #

sjoin_pointers :: Static bin v -> [SPointer] -> [SPointer] Source #

top :: Static bin v -> String -> SValue Source #

ssemantics :: Static bin v -> String -> SymbolicOperation SValue -> SValue Source #

sflg_semantics :: Static bin v -> SValue -> Instruction -> FlagStatus -> FlagStatus Source #

simmediate :: Integral i => Static bin v -> i -> SValue Source #

smk_init_reg_value :: Static bin v -> Register -> SValue Source #

smk_init_mem_value :: Static bin v -> String -> SPointer -> Maybe ByteSize -> SValue Source #

scall :: Static bin v -> Instruction -> State (Sstate SValue SPointer, VCS SValue) () Source #

sjump :: Static bin v -> Instruction -> State (Sstate SValue SPointer, VCS SValue) () Source #

saddress_has_instruction :: Static bin v -> Word64 -> Bool Source #

skeep_for_finit :: Static bin v -> SStatePart SPointer -> SValue -> Maybe (Set SPointer) Source #

stry_jump_targets :: Static bin v -> SValue -> Maybe (Set ResolvedJumpTarget) Source #

stry_resolve_error_call :: Static bin v -> Instruction -> SValue -> Maybe Indirection Source #

stry_immediate :: Static bin v -> SValue -> Maybe Word64 Source #

sis_deterministic :: Static bin v -> SValue -> Bool Source #

scheck_regs_in_postcondition :: Static bin v -> SValue -> SValue -> Bool Source #