29typedef std::map<uint32, Function>
FuncMap;
41 InstVec& insts,
const std::vector<unsigned char>& c
60 const InstVec& insts, std::ostream &output
94 virtual void GetVariants(std::vector<std::string>& variants)
const;
std::map< uint32, Function > FuncMap
Type representing a map of functions, indexed by starting address.
Definition: Engine.h:29
boost::adjacency_list< boost::setS, boost::listS, boost::bidirectionalS, GraphProperty, EdgeProperty > Graph
Definition: Graph.h:169
std::vector< InstPtr > InstVec
Type representing a vector of InstPtrs.
Definition: Instruction.h:382
Base class for engines.
Definition: Engine.h:34
virtual void GetVariants(std::vector< std::string > &variants) const
Retrieves the names of all variants supported for this engine.
Definition: Engine.cpp:30
virtual ~Engine()=default
virtual bool UsePureGrouping() const
Whether or not to use "pure" grouping during code flow analysis.
Definition: Engine.cpp:32
virtual std::unique_ptr< Disassembler > GetDisassembler(InstVec &insts)=0
Retrieve the disassembler for the engine.
virtual std::unique_ptr< Disassembler > GetDisassembler(InstVec &insts, const std::vector< unsigned char > &c)
Definition: Engine.cpp:18
std::string variant_
Engine variant to use for the script.
Definition: Engine.h:122
virtual std::unique_ptr< CodeGenerator > GetCodeGenerator(const InstVec &insts, std::ostream &output)=0
Retrieve the code generator for the engine.
virtual void PostCFG(InstVec &insts, Graph graph)
Post-processing step after CFG analysis.
Definition: Engine.cpp:24
virtual bool SupportsCodeFlow() const
Whether or not code flow analysis is supported for this engine.
Definition: Engine.cpp:26
FuncMap functions
Map to functions in the current script, indexed by start address.
Definition: Engine.h:115
virtual bool SupportsCodeGen() const
Whether or not code generation is supported for this engine.
Definition: Engine.cpp:28