7 #ifndef RETDEC_BIN2LLVMIR_ANALYSES_CTOR_DTOR_H
8 #define RETDEC_BIN2LLVMIR_ANALYSES_CTOR_DTOR_H
13 #include <llvm/IR/Module.h>
32 std::vector<std::pair<llvm::StoreInst*,
42 using StoreToVtable = std::map<llvm::StoreInst*, const common::Vtable*>;
81 for (T it = begin; it != end; ++it)
83 llvm::Instruction *i = &(*it);
84 if (step == STEP_SUPER)
86 if (llvm::CallInst *call = llvm::dyn_cast<llvm::CallInst>(i))
94 if (step == STEP_SUPER || step == STEP_VTABLES)
96 if (llvm::StoreInst *store = llvm::dyn_cast<llvm::StoreInst>(i))
Config DB provider for bin2llvmirl.
Definition: ctor_dtor.h:25
std::vector< int > superMethodOffsets
Super method offsets in order.
Definition: ctor_dtor.h:30
std::vector< int > vftableOffsets
Virtual table offsets in order.
Definition: ctor_dtor.h:35
bool dtor
Definition: ctor_dtor.h:37
bool ctor
Definition: ctor_dtor.h:36
std::vector< std::pair< llvm::StoreInst *, const common::Vtable * > > vftableStores
Virtual table stores in order.
Definition: ctor_dtor.h:33
std::vector< llvm::CallInst * > superMethods
Super method calls in order.
Definition: ctor_dtor.h:28
Definition: ctor_dtor.h:22
FunctionInfo analyseFunctionForward(llvm::Function *fnc)
Definition: ctor_dtor.cpp:148
FunctionSet possibleCtorsDtors
Definition: ctor_dtor.h:65
FileImage * image
Definition: ctor_dtor.h:63
FunctionInfo analyseFunctionBackward(llvm::Function *fnc)
Definition: ctor_dtor.cpp:160
int getOffset(llvm::Value *ecxStoreOp)
Definition: ctor_dtor.cpp:174
llvm::Module * module
Definition: ctor_dtor.h:61
StoreToVtable stores2vtables
Definition: ctor_dtor.h:66
FunctionToInfo & getResults()
Definition: ctor_dtor.cpp:39
std::map< llvm::StoreInst *, const common::Vtable * > StoreToVtable
Definition: ctor_dtor.h:42
void findPossibleCtorsDtors()
Definition: ctor_dtor.cpp:48
void analyseFunction(llvm::Function *fnc)
Definition: ctor_dtor.cpp:86
llvm::StoreInst * findPreviousStoreToECX(llvm::Instruction *inst)
Definition: ctor_dtor.cpp:208
FunctionInfo analyseFunctionCommon(T begin, T end)
Definition: ctor_dtor.h:71
std::map< llvm::Function *, FunctionInfo > FunctionToInfo
Definition: ctor_dtor.h:41
Config * config
Definition: ctor_dtor.h:62
FunctionToInfo function2info
Definition: ctor_dtor.h:67
void runOnModule(llvm::Module *m, Config *c, FileImage *i)
Definition: ctor_dtor.cpp:23
void propagateCtorDtor()
Definition: ctor_dtor.cpp:221
std::set< llvm::Function * > FunctionSet
Definition: ctor_dtor.h:40
Definition: fileimage.h:27
File image provider for bin2llvmirl.
The frontend-end part of the decompiler.
Definition: archive_wrapper.h:19