#include <cpdetect.h>
|
void | populateInternalPaths (const fs::path &dir, const std::set< std::string > &formats, const std::set< std::string > &archs) |
|
CompilerDetector - find information about tools
◆ CompilerDetector()
Constructor
Constructor in subclass must create members heuristics, internalDatabase and externalSuffixes
◆ getAllCompilers()
ReturnCode retdec::cpdetect::CompilerDetector::getAllCompilers |
( |
| ) |
|
|
private |
Detects all compilers (and packers) based on signatures and heuristics
- Returns
- Status of detection (ReturnCode::OK if all is OK)
◆ getAllHeuristics()
void retdec::cpdetect::CompilerDetector::getAllHeuristics |
( |
| ) |
|
|
private |
Try detect used compiler (or packer) based on heuristics
◆ getAllInformation()
ReturnCode retdec::cpdetect::CompilerDetector::getAllInformation |
( |
| ) |
|
Detect all supported information about used compiler or packer
- Returns
- Status of detection (ReturnCode::OK if all is OK)
Compiler can be successfully detected even if is returned a value other than ReturnCode::OK
◆ getAllSignatures()
ReturnCode retdec::cpdetect::CompilerDetector::getAllSignatures |
( |
| ) |
|
|
private |
Try detect used compiler (or packer) based on signatures
- Returns
- Status of detection (ReturnCode::OK if all is OK)
◆ getExternalDatabases()
bool retdec::cpdetect::CompilerDetector::getExternalDatabases |
( |
| ) |
|
|
private |
External databases parsing
- Returns
true
if at least one external database was detected, false
otherwise
◆ populateInternalPaths()
void retdec::cpdetect::CompilerDetector::populateInternalPaths |
( |
const fs::path & |
dir, |
|
|
const std::set< std::string > & |
formats, |
|
|
const std::set< std::string > & |
archs |
|
) |
| |
|
protected |
Add all YARA files from the given dir
to internal paths member. Expects dir
structure like this: formats/archs/files
◆ removeCompilersWithLessSimilarity()
void retdec::cpdetect::CompilerDetector::removeCompilersWithLessSimilarity |
( |
double |
refRatio | ) |
|
|
private |
Remove every detected compiler wchich has less similarity than refRatio
Compilers which have not been detected based on signatures are not affected
- Parameters
-
◆ removeUnusedCompilers()
void retdec::cpdetect::CompilerDetector::removeUnusedCompilers |
( |
| ) |
|
|
private |
Remove redundant compilers
◆ cpParams
◆ externalDatabase
std::vector<std::string> retdec::cpdetect::CompilerDetector::externalDatabase |
|
private |
◆ externalSuffixes
std::set<std::string> retdec::cpdetect::CompilerDetector::externalSuffixes |
|
protected |
external database file suffixes
◆ fileParser
◆ heuristics
std::unique_ptr<Heuristics> retdec::cpdetect::CompilerDetector::heuristics |
|
protected |
class for heuristics detections
◆ internalPaths
std::vector<std::string> retdec::cpdetect::CompilerDetector::internalPaths |
|
protected |
internal rule database files
◆ pathToShared
fs::path retdec::cpdetect::CompilerDetector::pathToShared |
|
protected |
◆ search
Search retdec::cpdetect::CompilerDetector::search |
|
protected |
class for signature search
◆ targetArchitecture
◆ toolInfo
The documentation for this class was generated from the following files:
- /var/cache/acbs/build/acbs.6bu6osb6/retdec/include/retdec/cpdetect/cpdetect.h
- /var/cache/acbs/build/acbs.6bu6osb6/retdec/src/cpdetect/cpdetect.cpp