Regular function is a function that has its own body in the target binary. Therefore, regular functions have their own IR-level CFG.
Constructor | Description |
Full Usage:
RegularFunction(histMgr, hdl, entry)
Parameters:
HistoryManager
hdl : BinHandle
entry : Addr
Returns: RegularFunction
|
|
Instance member | Description |
|
|
|
|
Full Usage:
this.AddEdge(callerBlk, callSite, callee, isTailCall)
Parameters:
ProgramPoint
callSite : Addr
callee : Addr
isTailCall : bool
|
|
Full Usage:
this.AddEdge(srcPp, dstPp, edge)
Parameters:
ProgramPoint
dstPp : ProgramPoint
edge : CFGEdgeKind
|
|
|
|
Full Usage:
this.AddVertex(instrs, leader)
Parameters:
InstructionInfo[]
leader : ProgramPoint
Returns: Vertex<IRBasicBlock>
|
Add a parsed regular basic block (given as an array of instructions along with its leader address) to this function.
|
|
|
Full Usage:
this.AmountUnwinding
|
|
|
A sequence of call edges (call site address, callee). That is, a CallEdge represents a function call edge from the caller bbl to its callee(s).
|
|
Returns the set of call target addresses. This function returns the correct set regardless of their callee types; for indirect calls, it returns a set of resolved target addresses, and for direct calls, it returns a singleton target address set.
|
Full Usage:
this.ClearCallEdges()
|
|
Full Usage:
this.CountRegularVertices
Returns: int
|
|
|
|
|
|
Full Usage:
this.FoldRegularVertices(fn) (acc)
Parameters:
'a -> KeyValuePair<ProgramPoint, Vertex<IRBasicBlock>> -> 'a
acc : 'a
Returns: 'a
|
|
|
|
Full Usage:
this.GetPCThunkInfo
|
|
Full Usage:
this.GetSSACFG(hdl)
Parameters:
BinHandle
Returns: DiGraph<SSABasicBlock, CFGEdgeKind> * Vertex<SSABasicBlock>
|
|
|
|
Full Usage:
this.IRCFG
|
|
|
|
|
|
Full Usage:
this.IsUnresolvedIndirectCall(callSiteAddr)
Parameters:
Addr
Returns: bool
|
|
|
|
|
|
|
|
|
|
Full Usage:
this.MaxAddr
|
|
Full Usage:
this.MergeVerticesWithInlinedAsmChunk(insAddrs, srcPp, dstPp, chunk)
Parameters:
Addr list
srcPp : ProgramPoint
dstPp : ProgramPoint
chunk : Instruction
|
Merge two vertices connected with an inlined assembly chunk, where there is a control-flow to the middle of an instruction.
|
Full Usage:
this.MinAddr
|
|
|
|
Full Usage:
this.RemoveEdge(src, dst, _kind)
Parameters:
Vertex<IRBasicBlock>
dst : Vertex<IRBasicBlock>
_kind : 'a
|
|
Full Usage:
this.RemoveEdge(src, dst)
Parameters:
Vertex<IRBasicBlock>
dst : Vertex<IRBasicBlock>
|
|
|
|
|
|
|
|
|
|
Full Usage:
this.SplitBBL(bblPoint, splitPoint)
Parameters:
ProgramPoint
splitPoint : ProgramPoint
Returns: Vertex<IRBasicBlock>
|
Split the BBL at bblPoint into two at the splitPoint. This function returns the second block located at the splitPoint.
|
Full Usage:
this.SplitFunction(hdl, newEntry)
Parameters: Returns: Set<Vertex<IRBasicBlock>> * RegularFunction
|
Split this function into two separate functions, one is this one, the original function, and the other is a function starting from newEntry.
|
|
|
Full Usage:
this.TryFindVertex(pp)
Parameters:
ProgramPoint
Returns: Vertex<IRBasicBlock> option
|
|
|
Return only a sequence of unresolved indirect call edge info: a tuple of (call site addr, fall-through addr).
|
Full Usage:
this.UpdateCallEdgeInfo(callSiteAddr, callee)
Parameters:
Addr
callee : CalleeKind
|
|
|
|
Static member | Description |
Full Usage:
RegularFunction.AddEdgeByType(fn) (src) (dst) (e)
Parameters:
RegularFunction
src : Vertex<IRBasicBlock>
dst : Vertex<IRBasicBlock>
e : CFGEdgeKind
|
|