7 #ifndef RETDEC_STACOFIN_STACOFIN_H
8 #define RETDEC_STACOFIN_STACOFIN_H
15 #include <capstone/capstone.h>
119 const std::string& yaraFile);
122 const std::set<std::string>& yaraFiles);
158 using ByteData =
typename std::pair<const std::uint8_t*, std::size_t>;
static const uint64_t Undefined
Definition: address.h:47
Definition: stacofin.h:113
cs_mode _ceMode
Definition: stacofin.h:183
common::Address getAddressFromRef(common::Address ref)
Definition: stacofin.cpp:948
void search(const retdec::loader::Image &image, const std::string &yaraFile)
Definition: stacofin.cpp:695
void searchAndConfirm(const retdec::loader::Image &image, const retdec::config::Config &config)
Definition: stacofin.cpp:803
const DetectedFunctionsMultimap & getAllDetections() const
Definition: stacofin.cpp:679
const retdec::loader::Image * _image
Definition: stacofin.h:180
std::map< common::Address, std::string > _imports
Definition: stacofin.h:186
std::set< std::string > _sectionNames
Definition: stacofin.h:187
const DetectedFunctionsPtrMap & getConfirmedDetections() const
Definition: stacofin.cpp:684
common::Address getAddressFromRef_mips(common::Address ref)
Definition: stacofin.cpp:1088
void confirmAllRefsOk(std::size_t minFncSzWithoutRefs=0x20)
Definition: stacofin.cpp:1532
common::Address getAddressFromRef_ppc(common::Address ref)
Definition: stacofin.cpp:1257
void confirmFunction(DetectedFunction *f)
Definition: stacofin.cpp:1652
CoveredCode getCoveredCode()
Definition: stacofin.cpp:674
typename std::pair< const std::uint8_t *, std::size_t > ByteData
Definition: stacofin.h:158
DetectedFunctionsMultimap _allDetections
Definition: stacofin.h:142
void confirmPartialRefsOk(float okShare=0.5)
Definition: stacofin.cpp:1610
const retdec::config::Config * _config
Definition: stacofin.h:179
void solveReferences()
Definition: stacofin.cpp:914
bool initDisassembler()
Definition: stacofin.cpp:872
void confirmWithoutRefs()
Definition: stacofin.cpp:1482
csh _ce
Definition: stacofin.h:182
void checkRef_x86(Reference &ref)
Definition: stacofin.cpp:1431
DetectedFunctionsPtrMultimap _rejectedDetections
Definition: stacofin.h:144
DetectedFunctionsPtrMap _confirmedDetections
Definition: stacofin.h:143
common::Address getAddressFromRef_x86(common::Address ref)
Definition: stacofin.cpp:973
common::Address getAddressFromRef_arm(common::Address ref)
Definition: stacofin.cpp:1179
void checkRef(Reference &ref)
Definition: stacofin.cpp:1303
cs_insn * _ceInsn
Definition: stacofin.h:184
CoveredCode coveredCode
Code coverage.
Definition: stacofin.h:140
std::set< DetectedFunction *, DetectedFunctionComp > _worklistDetections
Definition: stacofin.h:155
Address, address pair and other derived class representation.
Decompilation configuration manipulation.
RangeContainer< Address > AddressRangeContainer
Definition: address.h:56
retdec::common::Address Address
Address.
Definition: types.h:36
typename std::multimap< common::Address, DetectedFunction * > DetectedFunctionsPtrMultimap
Definition: stacofin.h:107
std::vector< Reference > References
Definition: stacofin.h:58
typename std::map< common::Address, DetectedFunction * > DetectedFunctionsPtrMap
Definition: stacofin.h:101
typename std::multimap< common::Address, DetectedFunction > DetectedFunctionsMultimap
Definition: stacofin.h:104
Definition: archive_wrapper.h:19
Definition: stacofin.h:64
bool isThumb() const
Definition: stacofin.cpp:617
std::size_t countRefsOk() const
Definition: stacofin.cpp:572
float refsOkShare() const
Definition: stacofin.cpp:584
void setReferences(const std::string &refsString)
Definition: stacofin.cpp:627
bool isTerminating() const
Definition: stacofin.cpp:596
void setAddress(retdec::common::Address a)
Definition: stacofin.cpp:649
std::string getName() const
Definition: stacofin.cpp:591
bool operator<(const DetectedFunction &o) const
Definition: stacofin.cpp:536
References references
Offset-name relocation pairs.
Definition: stacofin.h:89
retdec::common::Address address
Virtual address.
Definition: stacofin.h:96
retdec::common::Address getAddress() const
Definition: stacofin.cpp:658
std::size_t size
Original size of source.
Definition: stacofin.h:82
bool allRefsOk() const
Definition: stacofin.cpp:559
std::vector< std::string > names
Possible original names.
Definition: stacofin.h:87
std::size_t offset
Definition: stacofin.h:84
std::string signaturePath
Source signature path.
Definition: stacofin.h:92
Definition: stacofin.h:147
bool operator()(const DetectedFunction *a, const DetectedFunction *b) const
Definition: stacofin.h:148
Definition: stacofin.h:38
Reference(std::size_t o, const std::string &n, common::Address a=common::Address::Undefined, common::Address t=common::Address::Undefined, DetectedFunction *tf=nullptr, bool k=false)
Definition: stacofin.cpp:512
std::string name
Definition: stacofin.h:50
common::Address address
Definition: stacofin.h:52
bool ok
Definition: stacofin.h:55
common::Address target
Definition: stacofin.h:53
DetectedFunction * targetFnc
Definition: stacofin.h:54
std::size_t offset
Definition: stacofin.h:49