retdec
Public Member Functions | Protected Attributes | List of all members
retdec::fileinfo::FileDetector Class Referenceabstract

#include <file_detector.h>

Inheritance diagram for retdec::fileinfo::FileDetector:
Inheritance graph
[legend]
Collaboration diagram for retdec::fileinfo::FileDetector:
Collaboration graph
[legend]

Public Member Functions

 FileDetector (const std::string &pathToInputFile, FileInformation &finfo, retdec::cpdetect::DetectParams &searchPar, retdec::fileformat::LoadFlags loadFlags)
 
virtual ~FileDetector ()=default
 
void setConfigFile (retdec::config::Config &config)
 
void getAllInformation ()
 
const retdec::fileformat::FileFormatgetFileParser () const
 

Protected Member Functions

Pure virtual detection methods
virtual void detectFileClass ()=0
 
virtual void detectArchitecture ()=0
 
virtual void detectFileType ()=0
 
virtual void getAdditionalInfo ()=0
 
virtual retdec::cpdetect::CompilerDetectorcreateCompilerDetector () const =0
 

Protected Attributes

FileInformationfileInfo
 information about file More...
 
retdec::cpdetect::DetectParamscpParams
 parameters for detection of used compiler More...
 
retdec::config::ConfigfileConfig
 configuration of input file More...
 
std::shared_ptr< retdec::fileformat::FileFormatfileParser
 parser of input file More...
 
retdec::fileformat::LoadFlags loadFlags
 load flags for configurable running More...
 
bool loaded
 internal state of instance More...
 

Private Member Functions

Detection methods
void getEndianness ()
 
void getArchitectureBitSize ()
 
void getCompilerInformation ()
 
void getRichHeaderInfo ()
 
void getOverlayInfo ()
 
void getPdbInfo ()
 
void getResourceInfo ()
 
void getManifestInfo ()
 
void getImports ()
 
void getExports ()
 
void getHashes ()
 
void getStrings ()
 
void getCertificates ()
 
void getTlsInfo ()
 
void getLoaderInfo ()
 
void getAnomalies ()
 
- Private Member Functions inherited from retdec::utils::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
 NonCopyable ()=default
 
 ~NonCopyable ()=default
 

Detailed Description

FileDetector - find info about binary file

Constructor & Destructor Documentation

◆ FileDetector()

retdec::fileinfo::FileDetector::FileDetector ( const std::string &  pathToInputFile,
FileInformation finfo,
retdec::cpdetect::DetectParams searchPar,
retdec::fileformat::LoadFlags  loadFlags 
)

Constructor

Constructor in subclass must initialize members fileParser and loaded.

◆ ~FileDetector()

virtual retdec::fileinfo::FileDetector::~FileDetector ( )
virtualdefault

Member Function Documentation

◆ createCompilerDetector()

retdec::cpdetect::CompilerDetector * retdec::fileinfo::FileDetector::createCompilerDetector ( ) const
protectedpure virtual

Factory for creating detector of compilers

Returns
Instance of compiler detector or nullptr if detection of compiler is not supported for actual file format

Implemented in retdec::fileinfo::RawDataDetector, retdec::fileinfo::PeDetector, retdec::fileinfo::MachODetector, retdec::fileinfo::IntelHexDetector, retdec::fileinfo::ElfDetector, and retdec::fileinfo::CoffDetector.

◆ detectArchitecture()

void retdec::fileinfo::FileDetector::detectArchitecture ( )
protectedpure virtual

◆ detectFileClass()

void retdec::fileinfo::FileDetector::detectFileClass ( )
protectedpure virtual

◆ detectFileType()

void retdec::fileinfo::FileDetector::detectFileType ( )
protectedpure virtual

◆ getAdditionalInfo()

void retdec::fileinfo::FileDetector::getAdditionalInfo ( )
protectedpure virtual

◆ getAllInformation()

void retdec::fileinfo::FileDetector::getAllInformation ( )

Get all supported information about binary file

◆ getAnomalies()

void retdec::fileinfo::FileDetector::getAnomalies ( )
private

Get anomalies

◆ getArchitectureBitSize()

void retdec::fileinfo::FileDetector::getArchitectureBitSize ( )
private

Get bit-size of target architecture

◆ getCertificates()

void retdec::fileinfo::FileDetector::getCertificates ( )
private

Get information about certificates

◆ getCompilerInformation()

void retdec::fileinfo::FileDetector::getCompilerInformation ( )
private

Get all supported information about used compiler or packer

◆ getEndianness()

void retdec::fileinfo::FileDetector::getEndianness ( )
private

Get information about endianness

◆ getExports()

void retdec::fileinfo::FileDetector::getExports ( )
private

Get information about exports

◆ getFileParser()

const retdec::fileformat::FileFormat * retdec::fileinfo::FileDetector::getFileParser ( ) const

Get pointer to file parser

Returns
Pointer to file parser

◆ getHashes()

void retdec::fileinfo::FileDetector::getHashes ( )
private

Get hashes of input file

◆ getImports()

void retdec::fileinfo::FileDetector::getImports ( )
private

Get information about imports

◆ getLoaderInfo()

void retdec::fileinfo::FileDetector::getLoaderInfo ( )
private

Get loader information

◆ getManifestInfo()

void retdec::fileinfo::FileDetector::getManifestInfo ( )
private

Get information from manifest file

◆ getOverlayInfo()

void retdec::fileinfo::FileDetector::getOverlayInfo ( )
private

Get information about overlay

◆ getPdbInfo()

void retdec::fileinfo::FileDetector::getPdbInfo ( )
private

Get information about related PDB file

◆ getResourceInfo()

void retdec::fileinfo::FileDetector::getResourceInfo ( )
private

Get information about resources

◆ getRichHeaderInfo()

void retdec::fileinfo::FileDetector::getRichHeaderInfo ( )
private

Get information about rich header

◆ getStrings()

void retdec::fileinfo::FileDetector::getStrings ( )
private

Get information about strings

◆ getTlsInfo()

void retdec::fileinfo::FileDetector::getTlsInfo ( )
private

Get information about TLS

◆ setConfigFile()

void retdec::fileinfo::FileDetector::setConfigFile ( retdec::config::Config config)

We use config to initialize loaded file format – set architecture, endian etc. Used for formats that are lacking some information that needs to be specified by the user – Intel HEX, raw data.

Parameters
configConfig.

Member Data Documentation

◆ cpParams

retdec::cpdetect::DetectParams& retdec::fileinfo::FileDetector::cpParams
protected

parameters for detection of used compiler

◆ fileConfig

retdec::config::Config* retdec::fileinfo::FileDetector::fileConfig
protected

configuration of input file

◆ fileInfo

FileInformation& retdec::fileinfo::FileDetector::fileInfo
protected

information about file

◆ fileParser

std::shared_ptr<retdec::fileformat::FileFormat> retdec::fileinfo::FileDetector::fileParser
protected

parser of input file

◆ loaded

bool retdec::fileinfo::FileDetector::loaded
protected

internal state of instance

◆ loadFlags

retdec::fileformat::LoadFlags retdec::fileinfo::FileDetector::loadFlags
protected

load flags for configurable running


The documentation for this class was generated from the following files: