retdec
pattern_detector.h
Go to the documentation of this file.
1 
7 #ifndef FILEINFO_PATTERN_DETECTOR_PATTERN_DETECTOR_H
8 #define FILEINFO_PATTERN_DETECTOR_PATTERN_DETECTOR_H
9 
10 #include <set>
11 #include <string>
12 #include <vector>
13 
15 
16 namespace retdec {
17 namespace yaracpp {
18 class YaraRule;
19 } // namespace yaracpp
20 } // namespace retdec
21 
22 namespace retdec {
23 namespace fileinfo {
24 
29 {
30  private:
31  using patternCategoriesIterator = std::vector<std::pair<std::string, std::set<std::string>>>::const_iterator;
34  std::vector<std::pair<std::string, std::set<std::string>>> categories;
35 
41 
44  void createPatternFromRule(Pattern &pattern, const yaracpp::YaraRule &rule);
45  void saveCryptoRule(const yaracpp::YaraRule &rule);
46  void saveMalwareRule(const yaracpp::YaraRule &rule);
47  void saveOtherRule(const yaracpp::YaraRule &rule);
49  public:
51 
54  void addFilePaths(const std::string &category, const std::set<std::string> &paths);
55  void analyze();
57 };
58 
59 } // namespace fileinfo
60 } // namespace retdec
61 
62 #endif
Definition: file_format.h:45
Definition: file_information.h:25
Definition: pattern_detector.h:29
void analyze()
Definition: pattern_detector.cpp:337
patternCategoriesIterator begin() const
Definition: pattern_detector.cpp:36
PatternDetector(const retdec::fileformat::FileFormat *fparser, FileInformation &finfo)
Definition: pattern_detector.cpp:26
const retdec::fileformat::FileFormat * fileParser
parser of input file
Definition: pattern_detector.h:32
FileInformation & fileinfo
information about input file
Definition: pattern_detector.h:33
void saveOtherRule(const yaracpp::YaraRule &rule)
Definition: pattern_detector.cpp:279
std::vector< std::pair< std::string, std::set< std::string > > > categories
paths to YARA rules
Definition: pattern_detector.h:34
void addFilePaths(const std::string &category, const std::set< std::string > &paths)
Definition: pattern_detector.cpp:292
patternCategoriesIterator end() const
Definition: pattern_detector.cpp:45
std::vector< std::pair< std::string, std::set< std::string > >>::const_iterator patternCategoriesIterator
Definition: pattern_detector.h:31
void createPatternFromRule(Pattern &pattern, const yaracpp::YaraRule &rule)
Definition: pattern_detector.cpp:55
void saveCryptoRule(const yaracpp::YaraRule &rule)
Definition: pattern_detector.cpp:101
void saveMalwareRule(const yaracpp::YaraRule &rule)
Definition: pattern_detector.cpp:268
Definition: pattern.h:22
Definition: yara_rule.h:23
Definition of FileInformation class.
Definition: archive_wrapper.h:19