retdec
file_detector.h
Go to the documentation of this file.
1 
7 #ifndef FILEINFO_FILE_DETECTOR_FILE_DETECTOR_H
8 #define FILEINFO_FILE_DETECTOR_FILE_DETECTOR_H
9 
10 #include "retdec/config/config.h"
13 
14 namespace retdec {
15 namespace fileinfo {
16 
21 {
22  private:
25  void getEndianness();
28  void getRichHeaderInfo();
29  void getOverlayInfo();
30  void getPdbInfo();
31  void getResourceInfo();
32  void getManifestInfo();
33  void getImports();
34  void getExports();
35  void getHashes();
36  void getStrings();
37  void getCertificates();
38  void getTlsInfo();
39  void getLoaderInfo();
40  void getAnomalies();
42  protected:
46  std::shared_ptr<retdec::fileformat::FileFormat> fileParser;
48  bool loaded;
49 
52  virtual void detectFileClass() = 0;
53  virtual void detectArchitecture() = 0;
54  virtual void detectFileType() = 0;
55  virtual void getAdditionalInfo() = 0;
58  public:
60  const std::string& pathToInputFile,
61  FileInformation &finfo,
64  virtual ~FileDetector() = default;
65 
67  void getAllInformation();
69 };
70 
71 } // namespace fileinfo
72 } // namespace retdec
73 
74 #endif
Definition: config.h:30
Definition: cpdetect.h:24
Definition: file_format.h:45
Definition: file_detector.h:21
virtual ~FileDetector()=default
void getAnomalies()
Definition: file_detector.cpp:261
virtual void detectArchitecture()=0
void getLoaderInfo()
Definition: file_detector.cpp:228
void getPdbInfo()
Definition: file_detector.cpp:129
void getResourceInfo()
Definition: file_detector.cpp:145
void getOverlayInfo()
Definition: file_detector.cpp:111
void getImports()
Definition: file_detector.cpp:173
retdec::config::Config * fileConfig
configuration of input file
Definition: file_detector.h:45
retdec::cpdetect::DetectParams & cpParams
parameters for detection of used compiler
Definition: file_detector.h:44
void getArchitectureBitSize()
Definition: file_detector.cpp:62
void getCertificates()
Definition: file_detector.cpp:210
const retdec::fileformat::FileFormat * getFileParser() const
Definition: file_detector.cpp:359
void getCompilerInformation()
Definition: file_detector.cpp:74
void getAllInformation()
Definition: file_detector.cpp:327
void getTlsInfo()
Definition: file_detector.cpp:220
FileInformation & fileInfo
information about file
Definition: file_detector.h:43
virtual void detectFileType()=0
bool loaded
internal state of instance
Definition: file_detector.h:48
void getHashes()
Definition: file_detector.cpp:189
virtual void getAdditionalInfo()=0
FileDetector(const std::string &pathToInputFile, FileInformation &finfo, retdec::cpdetect::DetectParams &searchPar, retdec::fileformat::LoadFlags loadFlags)
Definition: file_detector.cpp:27
void getRichHeaderInfo()
Definition: file_detector.cpp:88
virtual retdec::cpdetect::CompilerDetector * createCompilerDetector() const =0
virtual void detectFileClass()=0
void getManifestInfo()
Definition: file_detector.cpp:153
void getStrings()
Definition: file_detector.cpp:202
void getExports()
Definition: file_detector.cpp:181
retdec::fileformat::LoadFlags loadFlags
load flags for configurable running
Definition: file_detector.h:47
void getEndianness()
Definition: file_detector.cpp:45
std::shared_ptr< retdec::fileformat::FileFormat > fileParser
parser of input file
Definition: file_detector.h:46
void setConfigFile(retdec::config::Config &config)
Definition: file_detector.cpp:299
Definition: file_information.h:25
A mixin to make classes non-copyable.
Definition: non_copyable.h:27
Decompilation configuration manipulation.
Definition of FileInformation class.
LoadFlags
Definition: fftypes.h:69
Definition: archive_wrapper.h:19
A mixin to make classes non-copyable.
Definition: cptypes.h:110