retdec
file_information.h
Go to the documentation of this file.
1 
7 #ifndef FILEINFO_FILE_INFORMATION_FILE_INFORMATION_H
8 #define FILEINFO_FILE_INFORMATION_FILE_INFORMATION_H
9 
10 #include <optional>
11 
14 
15 namespace retdec {
16 namespace fileinfo {
17 
25 {
26  private:
28  std::string filePath;
29  std::string crc32;
30  std::string md5;
31  std::string sha256;
32  std::string secCrc32;
33  std::string secMd5;
34  std::string secSha256;
37  std::string fileFormat;
38  std::string fileClass;
39  std::string fileType;
40  std::string targetArchitecture;
41  std::string endianness;
42  std::string manifest;
43  std::string compactManifest;
55  std::vector<DataDirectory> directories;
56  std::vector<FileSegment> segments;
57  std::vector<FileSection> sections;
58  std::vector<SymbolTable> symbolTables;
59  std::vector<RelocationTable> relocationTables;
60  std::vector<DynamicSection> dynamicSections;
61  std::vector<ElfNotes> elfNotes;
62  std::vector<Pattern> cryptoPatterns;
63  std::vector<Pattern> malwarePatterns;
64  std::vector<Pattern> otherPatterns;
66  std::optional<bool> signatureVerified;
68  std::string failedDepsList;
69  std::vector<std::pair<std::string,std::string>> anomalies;
70 
71  public:
73  std::vector<std::string> messages;
74 
78  std::string getPathToFile() const;
79  std::string getCrc32() const;
80  std::string getMd5() const;
81  std::string getSha256() const;
82  std::string getSectionTableCrc32() const;
83  std::string getSectionTableMd5() const;
84  std::string getSectionTableSha256() const;
86  std::string getFileFormat() const;
87  std::string getFileClass() const;
88  std::string getFileType() const;
89  std::string getTargetArchitecture() const;
90  std::string getEndianness() const;
91  std::string getManifest() const;
92  std::string getCompactManifest() const;
93  std::size_t getNumberOfStoredDataDirectories() const;
94  std::size_t getNumberOfStoredSegments() const;
95  std::size_t getNumberOfStoredSections() const;
96  std::size_t getNumberOfStoredSymbolTables() const;
97  std::size_t getNumberOfStoredRelocationTables() const;
98  std::size_t getNumberOfStoredDynamicSections() const;
99  std::size_t getNumberOfLoadedSegments() const;
100  std::size_t getNumberOfCryptoPatterns() const;
101  std::size_t getNumberOfMalwarePatterns() const;
102  std::size_t getNumberOfOtherPatterns() const;
104 
107  std::string getTimeStamp() const;
108  std::string getFileStatus() const;
109  std::string getFileVersion() const;
110  std::string getFileHeaderVersion() const;
111  std::string getOsAbi() const;
112  std::string getOsAbiVersion() const;
113  unsigned long long getFileFlagsSize() const;
114  unsigned long long getFileFlags() const;
115  std::string getFileFlagsStr() const;
116  std::size_t getNumberOfFileFlagsDescriptors() const;
117  void getFileFlagsDescriptors(std::vector<std::string> &desc, std::vector<std::string> &abb) const;
118  unsigned long long getDllFlagsSize() const;
119  unsigned long long getDllFlags() const;
120  std::string getDllFlagsStr() const;
121  std::size_t getNumberOfDllFlagsDescriptors() const;
122  void getDllFlagsDescriptors(std::vector<std::string> &desc, std::vector<std::string> &abb) const;
123  std::string getNumberOfBitsInByteStr() const;
124  std::string getNumberOfBitsInWordStr() const;
125  std::string getFileHeaderSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
126  std::string getSegmentTableOffsetStr(std::ios_base &(* format)(std::ios_base &)) const;
127  std::string getSegmentTableEntrySizeStr(std::ios_base &(* format)(std::ios_base &)) const;
128  std::string getSegmentTableSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
129  std::string getNumberOfDeclaredSegmentsStr() const;
130  std::string getSectionTableOffsetStr(std::ios_base &(* format)(std::ios_base &)) const;
131  std::string getSectionTableEntrySizeStr(std::ios_base &(* format)(std::ios_base &)) const;
132  std::string getSectionTableSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
133  std::string getNumberOfDeclaredSectionsStr() const;
134  std::string getCoffFileHeaderSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
135  std::string getOptionalHeaderSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
136  std::string getChecksumStr() const;
137  std::string getStackReserveSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
138  std::string getStackCommitSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
139  std::string getHeapReserveSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
140  std::string getHeapCommitSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
141  std::string getNumberOfDeclaredDataDirectoriesStr() const;
142  std::string getNumberOfDeclaredSymbolTablesStr() const;
143  std::string getOverlayOffsetStr(std::ios_base &(* format)(std::ios_base &)) const;
144  std::string getOverlaySizeStr(std::ios_base &(* format)(std::ios_base &)) const;
145  std::string getOverlayEntropyStr(std::ios_base &(* format)(std::ios_base &)) const;
147 
150  std::size_t getNumberOfStoredRecordsInRichHeader() const;
151  std::string getRichHeaderSignature() const;
152  std::string getRichHeaderOffsetStr(std::ios_base &(* format)(std::ios_base &)) const;
153  std::string getRichHeaderKeyStr(std::ios_base &(* format)(std::ios_base &)) const;
154  std::string getRichHeaderRecordProductIdStr(std::size_t position) const;
155  std::string getRichHeaderRecordProductBuildStr(std::size_t position) const;
156  std::string getRichHeaderRecordNumberOfUsesStr(std::size_t position) const;
157  std::string getRichHeaderRecordProductNameStr(std::size_t position) const;
158  std::string getRichHeaderRecordVisualStudioNameStr(std::size_t position) const;
159  std::string getRichHeaderRawBytesStr() const;
160  bool hasRichHeaderRecords() const;
162 
165  bool isVisualBasicUsed() const;
166  bool getVisualBasicIsPcode() const;
167  std::string getVisualBasicLanguageDLL() const;
168  std::string getVisualBasicBackupLanguageDLL() const;
169  std::string getVisualBasicProjectExeName() const;
170  std::string getVisualBasicProjectDescription() const;
171  std::string getVisualBasicProjectHelpFile() const;
172  std::string getVisualBasicProjectName() const;
173  std::string getVisualBasicLanguageDLLPrimaryLCIDStr() const;
174  std::string getVisualBasicLanguageDLLSecondaryLCIDStr() const;
175  std::string getVisualBasicProjectPath() const;
176  std::string getVisualBasicProjectPrimaryLCIDStr() const;
177  std::string getVisualBasicProjectSecondaryLCIDStr() const;
178  const retdec::fileformat::VisualBasicObject *getVisualBasicObject(std::size_t position) const;
179  const retdec::fileformat::VisualBasicExtern *getVisualBasicExtern(std::size_t position) const;
180  std::size_t getVisualBasicNumberOfObjects() const;
181  std::size_t getVisualBasicNumberOfExterns() const;
182  std::string getVisualBasicExternModuleName(std::size_t position) const;
183  std::string getVisualBasicExternApiName(std::size_t position) const;
184  std::string getVisualBasicObjectTableGUID() const;
185  std::string getVisualBasicTypeLibCLSID() const;
186  std::string getVisualBasicTypeLibMajorVersionStr() const;
187  std::string getVisualBasicTypeLibMinorVersionStr() const;
188  std::string getVisualBasicTypeLibLCIDStr() const;
189  std::string getVisualBasicCOMObjectName() const;
190  std::string getVisualBasicCOMObjectDescription() const;
191  std::string getVisualBasicCOMObjectCLSID() const;
192  std::string getVisualBasicCOMObjectInterfaceCLSID() const;
193  std::string getVisualBasicCOMObjectEventsCLSID() const;
194  std::string getVisualBasicCOMObjectType() const;
195  std::string getVisualBasicExternTableHashCrc32() const;
196  std::string getVisualBasicExternTableHashMd5() const;
197  std::string getVisualBasicExternTableHashSha256() const;
198  std::string getVisualBasicObjectTableHashCrc32() const;
199  std::string getVisualBasicObjectTableHashMd5() const;
200  std::string getVisualBasicObjectTableHashSha256() const;
202 
205  std::string getPdbType() const;
206  std::string getPdbPath() const;
207  std::string getPdbGuid() const;
208  std::string getPdbAgeStr(std::ios_base &(* format)(std::ios_base &)) const;
209  std::string getPdbTimeStampStr(std::ios_base &(* format)(std::ios_base &)) const;
211 
214  std::size_t getNumberOfStoredImportLibraries() const;
215  std::size_t getNumberOfStoredImports() const;
216  std::string getImphashCrc32() const;
217  std::string getImphashMd5() const;
218  std::string getImphashSha256() const;
219  const retdec::fileformat::Import* getImport(std::size_t position) const;
220  std::string getImportName(std::size_t position) const;
221  std::string getImportLibraryName(std::size_t position) const;
222  std::string getImportUsageType(std::size_t position) const;
223  std::string getImportAddressStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
224  std::string getImportOrdinalNumberStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
225  bool hasImportTableRecords() const;
227 
230  std::size_t getNumberOfMissingDeps() const;
231  std::string getMissingDepName(std::size_t position) const;
232  std::string getDepsListFailedToLoad() const;
233  void setDepsListFailedToLoad(const std::string & );
235 
238  std::size_t getNumberOfStoredExports() const;
239  std::string getExphashCrc32() const;
240  std::string getExphashMd5() const;
241  std::string getExphashSha256() const;
242  std::string getExportName(std::size_t position) const;
243  std::string getExportAddressStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
244  std::string getExportOrdinalNumberStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
245  bool hasExportTableRecords() const;
247 
250  std::size_t getNumberOfStoredResources() const;
251  std::size_t getNumberOfVersionInfoLanguages() const;
252  std::size_t getNumberOfVersionInfoStrings() const;
253  std::string getResourceCrc32(std::size_t index) const;
254  std::string getResourceMd5(std::size_t index) const;
255  std::string getResourceSha256(std::size_t index) const;
256  std::string getResourceIconhashCrc32() const;
257  std::string getResourceIconhashMd5() const;
258  std::string getResourceIconhashSha256() const;
259  std::string getResourceIconPerceptualAvgHash() const;
260  std::string getResourceName(std::size_t index) const;
261  std::string getResourceType(std::size_t index) const;
262  std::string getResourceLanguage(std::size_t index) const;
263  std::string getVersionInfoLanguageLcid(std::size_t index) const;
264  std::string getVersionInfoLanguageCodePage(std::size_t index) const;
265  std::string getVersionInfoStringName(std::size_t index) const;
266  std::string getVersionInfoStringValue(std::size_t index) const;
267  std::string getResourceNameIdStr(std::size_t index, std::ios_base &(* format)(std::ios_base &)) const;
268  std::string getResourceTypeIdStr(std::size_t index, std::ios_base &(* format)(std::ios_base &)) const;
269  std::string getResourceLanguageIdStr(std::size_t index, std::ios_base &(* format)(std::ios_base &)) const;
270  std::string getResourceSublanguageIdStr(std::size_t index, std::ios_base &(* format)(std::ios_base &)) const;
271  std::string getResourceOffsetStr(std::size_t index, std::ios_base &(* format)(std::ios_base &)) const;
272  std::string getResourceSizeStr(std::size_t index, std::ios_base &(* format)(std::ios_base &)) const;
273  bool hasResourceTableRecords() const;
275 
278  std::size_t getNumberOfStoredCertificates() const;
279  std::size_t getCertificateTableSignerCertificateIndex() const;
281  std::string getCertificateValidSince(std::size_t index) const;
282  std::string getCertificateValidUntil(std::size_t index) const;
283  std::string getCertificatePublicKey(std::size_t index) const;
284  std::string getCertificatePublicKeyAlgorithm(std::size_t index) const;
285  std::string getCertificateSignatureAlgorithm(std::size_t index) const;
286  std::string getCertificateSerialNumber(std::size_t index) const;
287  std::string getCertificateSha1Digest(std::size_t index) const;
288  std::string getCertificateSha256Digest(std::size_t index) const;
289  std::string getCertificateIssuerRawStr(std::size_t index) const;
290  std::string getCertificateSubjectRawStr(std::size_t index) const;
291  std::string getCertificateIssuerCountry(std::size_t index) const;
292  std::string getCertificateIssuerOrganization(std::size_t index) const;
293  std::string getCertificateIssuerOrganizationalUnit(std::size_t index) const;
294  std::string getCertificateIssuerNameQualifier(std::size_t index) const;
295  std::string getCertificateIssuerState(std::size_t index) const;
296  std::string getCertificateIssuerCommonName(std::size_t index) const;
297  std::string getCertificateIssuerSerialNumber(std::size_t index) const;
298  std::string getCertificateIssuerLocality(std::size_t index) const;
299  std::string getCertificateIssuerTitle(std::size_t index) const;
300  std::string getCertificateIssuerSurname(std::size_t index) const;
301  std::string getCertificateIssuerGivenName(std::size_t index) const;
302  std::string getCertificateIssuerInitials(std::size_t index) const;
303  std::string getCertificateIssuerPseudonym(std::size_t index) const;
304  std::string getCertificateIssuerGenerationQualifier(std::size_t index) const;
305  std::string getCertificateIssuerEmailAddress(std::size_t index) const;
306  std::string getCertificateSubjectCountry(std::size_t index) const;
307  std::string getCertificateSubjectOrganization(std::size_t index) const;
308  std::string getCertificateSubjectOrganizationalUnit(std::size_t index) const;
309  std::string getCertificateSubjectNameQualifier(std::size_t index) const;
310  std::string getCertificateSubjectState(std::size_t index) const;
311  std::string getCertificateSubjectCommonName(std::size_t index) const;
312  std::string getCertificateSubjectSerialNumber(std::size_t index) const;
313  std::string getCertificateSubjectLocality(std::size_t index) const;
314  std::string getCertificateSubjectTitle(std::size_t index) const;
315  std::string getCertificateSubjectSurname(std::size_t index) const;
316  std::string getCertificateSubjectGivenName(std::size_t index) const;
317  std::string getCertificateSubjectInitials(std::size_t index) const;
318  std::string getCertificateSubjectPseudonym(std::size_t index) const;
319  std::string getCertificateSubjectGenerationQualifier(std::size_t index) const;
320  std::string getCertificateSubjectEmailAddress(std::size_t index) const;
321  bool hasCertificateTableRecords() const;
325 
328  std::string getTlsRawDataStartAddrStr(std::ios_base &(* format)(std::ios_base &)) const;
329  std::string getTlsRawDataEndAddrStr(std::ios_base &(* format)(std::ios_base &)) const;
330  std::string getTlsIndexAddrStr(std::ios_base &(* format)(std::ios_base &)) const;
331  std::string getTlsCallBacksAddrStr(std::ios_base &(* format)(std::ios_base &)) const;
332  std::string getTlsZeroFillSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
333  std::string getTlsCharacteristicsStr() const;
334  std::size_t getTlsNumberOfCallBacks() const;
335  std::string getTlsCallBackAddrStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
336  bool isTlsUsed() const;
338 
341  std::string getDataDirectoryType(std::size_t position) const;
342  std::string getDataDirectoryAddressStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
343  std::string getDataDirectorySizeStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
345 
348  std::string getSegmentType(std::size_t position) const;
349  std::string getSegmentCrc32(std::size_t index) const;
350  std::string getSegmentMd5(std::size_t index) const;
351  std::string getSegmentSha256(std::size_t index) const;
352  std::string getSegmentIndexStr(std::size_t position) const;
353  std::string getSegmentOffsetStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
354  std::string getSegmentVirtualAddressStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
355  std::string getSegmentPhysicalAddressStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
356  std::string getSegmentSizeInFileStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
357  std::string getSegmentSizeInMemoryStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
358  std::string getSegmentAlignmentStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
359  unsigned long long getSegmentFlagsSize(std::size_t position) const;
360  unsigned long long getSegmentFlags(std::size_t position) const;
361  std::string getSegmentFlagsStr(std::size_t position) const;
362  std::size_t getNumberOfSegmentFlagsDescriptors(std::size_t position) const;
363  void getSegmentFlagsDescriptors(std::size_t position, std::vector<std::string> &desc, std::vector<std::string> &abb) const;
365 
368  std::string getSectionName(std::size_t position) const;
369  std::string getSectionType(std::size_t position) const;
370  std::string getSectionCrc32(std::size_t index) const;
371  std::string getSectionMd5(std::size_t index) const;
372  std::string getSectionSha256(std::size_t index) const;
373  std::string getSectionIndexStr(std::size_t position) const;
374  std::string getSectionOffsetStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
375  std::string getSectionSizeInFileStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
376  std::string getSectionEntrySizeStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
377  std::string getSectionAddressStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
378  std::string getSectionSizeInMemoryStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
379  std::string getSectionRelocationsOffsetStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
380  std::string getSectionNumberOfRelocationsStr(std::size_t position) const;
381  std::string getSectionLineNumbersOffsetStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
382  std::string getSectionNumberOfLineNumbersStr(std::size_t position) const;
383  std::string getSectionMemoryAlignmentStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
384  std::string getSectionLinkToOtherSectionStr(std::size_t position) const;
385  std::string getSectionExtraInfoStr(std::size_t position) const;
386  std::string getSectionLineOffsetStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
387  std::string getSectionRelocationsLineOffsetStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
388  std::string getSectionEntropy(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
389  unsigned long long getSectionFlagsSize(std::size_t position) const;
390  unsigned long long getSectionFlags(std::size_t position) const;
391  std::string getSectionFlagsStr(std::size_t position) const;
392  std::size_t getNumberOfSectionFlagsDescriptors(std::size_t position) const;
393  void getSectionFlagsDescriptors(std::size_t position, std::vector<std::string> &desc, std::vector<std::string> &abb) const;
395 
398  std::size_t getNumberOfStoredSymbolsInTable(std::size_t position) const;
399  std::string getNumberOfDeclaredSymbolsInTableStr(std::size_t position) const;
400  std::string getSymbolTableName(std::size_t position) const;
401  std::string getSymbolTableOffsetStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
402  std::string getSymbolName(std::size_t tableIndex, std::size_t symbolIndex) const;
403  std::string getSymbolType(std::size_t tableIndex, std::size_t symbolIndex) const;
404  std::string getSymbolBind(std::size_t tableIndex, std::size_t symbolIndex) const;
405  std::string getSymbolOther(std::size_t tableIndex, std::size_t symbolIndex) const;
406  std::string getSymbolLinkToSection(std::size_t tableIndex, std::size_t symbolIndex) const;
407  std::string getSymbolIndexStr(std::size_t tableIndex, std::size_t symbolIndex) const;
408  std::string getSymbolAddressStr(std::size_t tableIndex, std::size_t symbolIndex, std::ios_base &(* format)(std::ios_base &)) const;
409  std::string getSymbolValueStr(std::size_t tableIndex, std::size_t symbolIndex) const;
410  std::string getSymbolSizeStr(std::size_t tableIndex, std::size_t symbolIndex) const;
411  std::size_t getSymbolTableNumberOfStoredSpecialInformation(std::size_t position) const;
412  std::size_t getSymbolTableNumberOfSpecialInformationValues(std::size_t tableIndex, std::size_t specInfoIndex) const;
413  std::string getSymbolTableSpecialInformationDescription(std::size_t tableIndex, std::size_t specInfoIndex) const;
414  std::string getSymbolTableSpecialInformationAbbreviation(std::size_t tableIndex, std::size_t specInfoIndex) const;
415  std::string getSymbolTableSpecialInformationValue(std::size_t tableIndex, std::size_t specInfoIndex, std::size_t recordIndex) const;
417 
420  std::size_t getNumberOfStoredRelocationsInTable(std::size_t position) const;
421  std::string getNumberOfStoredRelocationsInTableStr(std::size_t position) const;
422  std::string getNumberOfDeclaredRelocationsInTableStr(std::size_t position) const;
423  std::string getRelocationTableName(std::size_t position) const;
424  std::string getRelocationTableAssociatedSymbolTableName(std::size_t position) const;
425  std::string getRelocationTableAppliesSectionName(std::size_t position) const;
426  std::string getRelocationTableAssociatedSymbolTableIndex(std::size_t position) const;
427  std::string getRelocationTableAppliesSectionIndex(std::size_t position) const;
428  std::string getRelocationSymbolName(std::size_t tableIndex, std::size_t relocationIndex) const;
429  std::string getRelocationOffsetStr(std::size_t tableIndex, std::size_t relocationIndex, std::ios_base &(* format)(std::ios_base &)) const;
430  std::string getRelocationSymbolValueStr(std::size_t tableIndex, std::size_t relocationIndex) const;
431  std::string getRelocationTypeStr(std::size_t tableIndex, std::size_t relocationIndex) const;
432  std::string getRelocationAddendStr(std::size_t tableIndex, std::size_t relocationIndex) const;
433  std::string getRelocationCalculatedValueStr(std::size_t tableIndex, std::size_t relocationIndex) const;
435 
438  std::size_t getNumberOfStoredDynamicEntriesInSection(std::size_t position) const;
439  std::string getNumberOfDeclaredDynamicEntriesInSectionStr(std::size_t position) const;
440  std::string getDynamicSectionName(std::size_t position) const;
441  std::string getDynamicEntryType(std::size_t sectionIndex, std::size_t entryIndex) const;
442  std::string getDynamicEntryDescription(std::size_t sectionIndex, std::size_t entryIndex) const;
443  std::string getDynamicEntryValueStr(std::size_t sectionIndex, std::size_t entryIndex, std::ios_base &(* format)(std::ios_base &)) const;
444  unsigned long long getDynamicEntryFlagsSize(std::size_t sectionIndex, std::size_t entryIndex) const;
445  unsigned long long getDynamicEntryFlags(std::size_t sectionIndex, std::size_t entryIndex) const;
446  std::string getDynamicEntryFlagsStr(std::size_t sectionIndex, std::size_t entryIndex) const;
447  std::size_t getNumberOfDynamicEntryFlagsDescriptors(std::size_t sectionIndex, std::size_t entryIndex) const;
448  void getDynamicEntryFlagsDescriptors(std::size_t sectionIndex, std::size_t entryIndex, std::vector<std::string> &desc, std::vector<std::string> &abb) const;
450 
453  const Pattern* getCryptoPattern(std::size_t position) const;
454  const Pattern* getMalwarePattern(std::size_t position) const;
455  const Pattern* getOtherPattern(std::size_t position) const;
456  const std::vector<Pattern>& getCryptoPatterns() const;
457  const std::vector<Pattern>& getMalwarePatterns() const;
458  const std::vector<Pattern>& getOtherPatterns() const;
460 
463  std::size_t getNumberOfDetectedStrings() const;
464  const Strings& getStrings() const;
465  bool hasStrings() const;
467 
470  bool isSignaturePresent() const;
471  bool isSignatureVerified() const;
472  std::string isSignatureVerifiedStr(const std::string& t = "true", const std::string& f = "false") const;
474 
477  const std::vector<ElfNotes>& getElfNotes() const;
478  const ElfCore& getElfCoreInfo() const;
480 
483  std::size_t getNumberOfDetectedCompilers() const;
484  std::string getImageBaseStr(std::ios_base &(* format)(std::ios_base &)) const;
485  std::string getEpAddressStr(std::ios_base &(* format)(std::ios_base &)) const;
486  std::string getEpOffsetStr(std::ios_base &(* format)(std::ios_base &)) const;
487  std::string getEpBytes() const;
488  std::string getEpSectionIndex() const;
489  std::string getEpSectionName() const;
491 
494  std::string getLoadedBaseAddressStr(std::ios_base &(* format)(std::ios_base &)) const;
495  std::string getNumberOfLoadedSegmentsStr(std::ios_base &(* format)(std::ios_base &)) const;
496  const LoadedSegment& getLoadedSegment(std::size_t index) const;
497  const std::string& getLoaderStatusMessage() const;
500 
503  bool isDotnetUsed() const;
504  const std::string& getDotnetRuntimeVersion() const;
505  std::string getDotnetImportedClassName(std::size_t position) const;
506  std::string getDotnetImportedClassNestedName(std::size_t position) const;
507  std::string getDotnetImportedClassNameWithParentClassIndex(std::size_t position) const;
508  std::string getDotnetImportedClassLibName(std::size_t position) const;
509  std::string getDotnetImportedClassNameSpace(std::size_t position) const;
510  std::string getDotnetTypeRefhashCrc32() const;
511  std::string getDotnetTypeRefhashMd5() const;
512  std::string getDotnetTypeRefhashSha256() const;
513  std::size_t getNumberOfStoredDotnetImportedClasses() const;
514  std::string getDotnetMetadataHeaderAddressStr(std::ios_base &(* format)(std::ios_base &)) const;
515  std::string getDotnetMetadataStreamOffsetStr(std::ios_base &(* format)(std::ios_base &)) const;
516  std::string getDotnetMetadataStreamSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
517  std::string getDotnetStringStreamOffsetStr(std::ios_base &(* format)(std::ios_base &)) const;
518  std::string getDotnetStringStreamSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
519  std::string getDotnetBlobStreamOffsetStr(std::ios_base &(* format)(std::ios_base &)) const;
520  std::string getDotnetBlobStreamSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
521  std::string getDotnetGuidStreamOffsetStr(std::ios_base &(* format)(std::ios_base &)) const;
522  std::string getDotnetGuidStreamSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
523  std::string getDotnetUserStringStreamOffsetStr(std::ios_base &(* format)(std::ios_base &)) const;
524  std::string getDotnetUserStringStreamSizeStr(std::ios_base &(* format)(std::ios_base &)) const;
525  const std::string& getDotnetModuleVersionId() const;
526  const std::string& getDotnetTypeLibId() const;
527  const std::vector<std::shared_ptr<retdec::fileformat::DotnetClass>>& getDotnetDefinedClassList() const;
528  const std::vector<std::shared_ptr<retdec::fileformat::DotnetClass>>& getDotnetImportedClassList() const;
529  bool hasDotnetMetadataStream() const;
530  bool hasDotnetStringStream() const;
531  bool hasDotnetBlobStream() const;
532  bool hasDotnetGuidStream() const;
533  bool hasDotnetUserStringStream() const;
534  bool hasDotnetTypeLibId() const;
535  bool hasDotnetTypeRefTableRecords() const;
537 
540  std::size_t getNumberOfAnomalies() const;
541  std::string getAnomalyIdentifier(std::size_t position) const;
542  std::string getAnomalyDescription(std::size_t position) const;
544 
548  void setPathToFile(const std::string &filepath);
549  void setCrc32(const std::string &fileCrc32);
550  void setMd5(const std::string &fileMd5);
551  void setSha256(const std::string &fileSha256);
552  void setSectionTableCrc32(const std::string &sCrc32);
553  void setSectionTableMd5(const std::string &sMd5);
554  void setSectionTableSha256(const std::string &sSha256);
556  void setFileFormat(const std::string &fileformat);
557  void setFileClass(const std::string &fileclass);
558  void setFileType(const std::string &filetype);
559  void setTargetArchitecture(const std::string &architecture);
560  void setEndianness(const std::string &fileEndianness);
561  void setManifest(const std::string &fileManifest);
562  void setCompactManifest(const std::string &fileCompactManifest);
563  void setTimeStamp(const std::string &timestamp);
564  void setFileStatus(const std::string &fileStatus);
565  void setFileVersion(const std::string &version);
566  void setFileHeaderVersion(const std::string &version);
567  void setOsAbi(const std::string &osabi);
568  void setOsAbiVersion(const std::string &abiversion);
569  void setFileFlagsSize(unsigned long long size);
570  void setFileFlags(unsigned long long flagsArray);
571  void setDllFlagsSize(unsigned long long size);
572  void setDllFlags(unsigned long long flagsArray);
573  void setNumberOfBitsInByte(unsigned long long bitsInByte);
574  void setNumberOfBitsInWord(unsigned long long bitsInWord);
575  void setFileHeaderSize(unsigned long long size);
576  void setSegmentTableOffset(unsigned long long offset);
577  void setSegmentTableEntrySize(unsigned long long entrySize);
578  void setSegmentTableSize(unsigned long long tableSize);
579  void setNumberOfDeclaredSegments(unsigned long long noOfSegments);
580  void setSectionTableOffset(unsigned long long offset);
581  void setSectionTableEntrySize(unsigned long long entrySize);
582  void setSectionTableSize(unsigned long long tableSize);
583  void setNumberOfDeclaredSections(unsigned long long noOfSections);
584  void setCoffFileHeaderSize(unsigned long long headerSize);
585  void setOptionalHeaderSize(unsigned long long headerSize);
586  void setChecksum(unsigned long long fileChecksum);
587  void setStackReserveSize(unsigned long long size);
588  void setStackCommitSize(unsigned long long size);
589  void setHeapReserveSize(unsigned long long size);
590  void setHeapCommitSize(unsigned long long size);
591  void setNumberOfDeclaredDataDirectories(unsigned long long noOfDirectories);
592  void setNumberOfDeclaredSymbolTables(unsigned long long noOfTables);
593  void setOverlayOffset(unsigned long long offset);
594  void setOverlaySize(unsigned long long size);
595  void setOverlayEntropy(double entropy);
596  void setRichHeader(const retdec::fileformat::RichHeader *rHeader);
598  void setVisualBasicUsed(bool set);
599  void setPdbType(const std::string &sType);
600  void setPdbPath(const std::string &sPath);
601  void setPdbGuid(const std::string &sGuid);
602  void setPdbAge(std::size_t sAge);
603  void setPdbTimeStamp(std::size_t sTimeStamp);
607  void setStrings(const std::vector<retdec::fileformat::String> *sStrings);
609  void setTlsInfo(const retdec::fileformat::TlsInfo *info);
610  void setSignatureVerified(bool verified);
611  void setLoadedBaseAddress(unsigned long long baseAddress);
612  void setLoaderStatusMessage(const std::string& statusMessage);
614  void setDotnetUsed(bool set);
615  void setDotnetRuntimeVersion(std::uint64_t majorVersion, std::uint64_t minorVersion);
616  void setDotnetMetadataHeaderAddress(std::uint64_t address);
617  void setDotnetMetadataStreamInfo(std::uint64_t streamOffset, std::uint64_t streamSize);
618  void setDotnetStringStreamInfo(std::uint64_t streamOffset, std::uint64_t streamSize);
619  void setDotnetBlobStreamInfo(std::uint64_t streamOffset, std::uint64_t streamSize);
620  void setDotnetGuidStreamInfo(std::uint64_t streamOffset, std::uint64_t streamSize);
621  void setDotnetUserStringStreamInfo(std::uint64_t streamOffset, std::uint64_t streamSize);
622  void setDotnetModuleVersionId(const std::string& moduleVersionId);
623  void setDotnetTypeLibId(const std::string& typeLibId);
624  void setDotnetDefinedClassList(const std::vector<std::shared_ptr<retdec::fileformat::DotnetClass>>& dotnetClassList);
625  void setDotnetImportedClassList(const std::vector<std::shared_ptr<retdec::fileformat::DotnetClass>>& dotnetClassList);
626  void setDotnetTypeRefhashCrc32(const std::string& crc32);
627  void setDotnetTypeRefhashMd5(const std::string& md5);
628  void setDotnetTypeRefhashSha256(const std::string& sha256);
629  void setAnomalies(const std::vector<std::pair<std::string,std::string>> &anom);
631 
634  void addFileFlagsDescriptor(std::string descriptor, std::string abbreviation);
636  void addDllFlagsDescriptor(std::string descriptor, std::string abbreviation);
638  void addDataDirectory(DataDirectory &dataDirectory);
639  void addSegment(FileSegment &fileSegment);
640  void addSection(FileSection &fileSection);
641  void addSymbolTable(SymbolTable &table);
642  void addRelocationTable(RelocationTable &table);
643  void addDynamicSection(DynamicSection &section);
644  void addElfNotes(ElfNotes &notes);
645  void addFileMapEntry(const FileMapEntry& entry);
646  void addAuxVectorEntry(const std::string& name, std::size_t value);
647  void addCryptoPattern(Pattern &pattern);
650  void addMalwarePattern(Pattern &pattern);
652  void addOtherPattern(Pattern &pattern);
655  void addLoadedSegment(const LoadedSegment& segment);
657 };
658 
659 } // namespace fileinfo
660 } // namespace retdec
661 
662 #endif
Definition: certificate_table.h:21
Definition: export_table.h:21
Definition: import_table.h:22
Definition: import.h:19
Definition: resource_table.h:24
Definition: rich_header.h:22
Definition: tls_info.h:20
Definition: visual_basic_extern.h:19
Definition: visual_basic_info.h:24
Definition: visual_basic_object.h:20
Definition: certificate_table.h:19
Definition: data_directory.h:22
Definition: dotnet_info.h:29
Definition: dynamic_section.h:22
Definition: elf_core.h:34
Definition: elf_notes.h:34
Definition: export_table.h:19
Definition: file_header.h:23
Definition: file_information.h:25
std::string crc32
CRC32 of input file.
Definition: file_information.h:29
void setSectionTableCrc32(const std::string &sCrc32)
Definition: file_information.cpp:3763
void addOtherPattern(Pattern &pattern)
Definition: file_information.cpp:4643
std::string getImportLibraryName(std::size_t position) const
Definition: file_information.cpp:1233
std::string getExphashSha256() const
Definition: file_information.cpp:1347
unsigned long long getSectionFlags(std::size_t position) const
Definition: file_information.cpp:2449
std::string getCertificateSubjectCountry(std::size_t index) const
Definition: file_information.cpp:1914
void setAnomalies(const std::vector< std::pair< std::string, std::string >> &anom)
Definition: file_information.cpp:4462
const retdec::fileformat::Import * getImport(std::size_t position) const
Definition: file_information.cpp:1213
std::string getOsAbi() const
Definition: file_information.cpp:355
void setDotnetUserStringStreamInfo(std::uint64_t streamOffset, std::uint64_t streamSize)
Definition: file_information.cpp:4390
std::vector< RelocationTable > relocationTables
relocation tables
Definition: file_information.h:59
std::string getRelocationSymbolValueStr(std::size_t tableIndex, std::size_t relocationIndex) const
Definition: file_information.cpp:2963
void setSectionTableSize(unsigned long long tableSize)
Definition: file_information.cpp:4033
std::string getDotnetMetadataStreamSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3501
std::string getChecksumStr() const
Definition: file_information.cpp:588
std::string getDepsListFailedToLoad() const
Definition: file_information.cpp:1302
unsigned long long getFileFlagsSize() const
Definition: file_information.cpp:373
void setStackReserveSize(unsigned long long size)
Definition: file_information.cpp:4078
std::string getDynamicEntryDescription(std::size_t sectionIndex, std::size_t entryIndex) const
Definition: file_information.cpp:3054
std::string getCertificateIssuerInitials(std::size_t index) const
Definition: file_information.cpp:1874
retdec::fileformat::Format getFileFormatEnum() const
Definition: file_information.cpp:166
std::size_t getNumberOfOtherPatterns() const
Definition: file_information.cpp:310
std::string getCertificateValidSince(std::size_t index) const
Definition: file_information.cpp:1664
std::string getSectionLineOffsetStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2629
std::string getCertificateIssuerGenerationQualifier(std::size_t index) const
Definition: file_information.cpp:1894
std::string getFileFormat() const
Definition: file_information.cpp:175
void setPdbType(const std::string &sType)
Definition: file_information.cpp:4186
bool hasImportTableRecords() const
Definition: file_information.cpp:1274
std::string getEndianness() const
Definition: file_information.cpp:211
std::string getVisualBasicProjectSecondaryLCIDStr() const
Definition: file_information.cpp:900
void sortOtherPatternMatches()
Definition: file_information.cpp:4651
const std::vector< ElfNotes > & getElfNotes() const
Definition: file_information.cpp:3244
std::size_t getSymbolTableNumberOfSpecialInformationValues(std::size_t tableIndex, std::size_t specInfoIndex) const
Definition: file_information.cpp:2809
std::string getVisualBasicProjectExeName() const
Definition: file_information.cpp:828
std::string getSymbolSizeStr(std::size_t tableIndex, std::size_t symbolIndex) const
Definition: file_information.cpp:2788
bool isDotnetUsed() const
Definition: file_information.cpp:3376
std::string getOverlayOffsetStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:651
std::string getVisualBasicTypeLibMajorVersionStr() const
Definition: file_information.cpp:985
std::string getResourceSizeStr(std::size_t index, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:1617
std::string md5
MD5 of input file.
Definition: file_information.h:30
std::string getEpAddressStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3282
std::string getDataDirectoryAddressStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2190
std::string getRichHeaderRecordProductNameStr(std::size_t position) const
Definition: file_information.cpp:754
std::string getSegmentFlagsStr(std::size_t position) const
Definition: file_information.cpp:2347
std::string getSymbolLinkToSection(std::size_t tableIndex, std::size_t symbolIndex) const
Definition: file_information.cpp:2743
std::string getCertificateSubjectTitle(std::size_t index) const
Definition: file_information.cpp:1994
bool hasDotnetTypeRefTableRecords() const
Definition: file_information.cpp:3680
std::string getCertificatePublicKeyAlgorithm(std::size_t index) const
Definition: file_information.cpp:1694
std::string getCertificateIssuerLocality(std::size_t index) const
Definition: file_information.cpp:1834
void setOptionalHeaderSize(unsigned long long headerSize)
Definition: file_information.cpp:4060
std::string getResourceTypeIdStr(std::size_t index, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:1573
std::string filePath
path to input file
Definition: file_information.h:28
std::string getFileFlagsStr() const
Definition: file_information.cpp:391
void setSegmentTableEntrySize(unsigned long long entrySize)
Definition: file_information.cpp:3988
std::size_t getNumberOfStoredSymbolTables() const
Definition: file_information.cpp:265
std::string getVisualBasicExternTableHashMd5() const
Definition: file_information.cpp:1075
std::string fileClass
class of file
Definition: file_information.h:38
const retdec::fileformat::VisualBasicExtern * getVisualBasicExtern(std::size_t position) const
Definition: file_information.cpp:920
std::string getVisualBasicLanguageDLLSecondaryLCIDStr() const
Definition: file_information.cpp:873
retdec::cpdetect::ReturnCode getStatus() const
Definition: file_information.cpp:94
std::size_t getNumberOfCryptoPatterns() const
Definition: file_information.cpp:292
void addSegment(FileSegment &fileSegment)
Definition: file_information.cpp:4516
void getSegmentFlagsDescriptors(std::size_t position, std::vector< std::string > &desc, std::vector< std::string > &abb) const
Definition: file_information.cpp:2368
void addDllFlagsDescriptor(std::string descriptor, std::string abbreviation)
Definition: file_information.cpp:4490
std::string getSectionAddressStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2534
void setPdbAge(std::size_t sAge)
Definition: file_information.cpp:4213
std::string getTlsCallBacksAddrStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2121
std::string getCertificateSubjectGivenName(std::size_t index) const
Definition: file_information.cpp:2014
std::string getSectionFlagsStr(std::size_t position) const
Definition: file_information.cpp:2459
std::string getVisualBasicCOMObjectName() const
Definition: file_information.cpp:1012
std::string getFileVersion() const
Definition: file_information.cpp:337
std::string getSegmentMd5(std::size_t index) const
Definition: file_information.cpp:2231
std::string getAnomalyDescription(std::size_t position) const
Definition: file_information.cpp:3709
std::string getSectionTableSha256() const
Definition: file_information.cpp:157
std::string getNumberOfDeclaredSegmentsStr() const
Definition: file_information.cpp:524
bool hasDotnetTypeLibId() const
Definition: file_information.cpp:3671
std::string getFileStatus() const
Definition: file_information.cpp:328
RichHeader richHeader
rich header
Definition: file_information.h:45
unsigned long long getFileFlags() const
Definition: file_information.cpp:382
std::string getRichHeaderKeyStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:714
std::string getCertificateSerialNumber(std::size_t index) const
Definition: file_information.cpp:1714
bool hasResourceTableRecords() const
Definition: file_information.cpp:1626
std::string getDataDirectoryType(std::size_t position) const
Definition: file_information.cpp:2179
void setPathToFile(const std::string &filepath)
Definition: file_information.cpp:3727
std::string getCertificateIssuerRawStr(std::size_t index) const
Definition: file_information.cpp:1744
std::string getRichHeaderSignature() const
Definition: file_information.cpp:696
std::string getImportName(std::size_t position) const
Definition: file_information.cpp:1223
void setFileFormatEnum(retdec::fileformat::Format format)
Definition: file_information.cpp:3790
std::string getResourceLanguage(std::size_t index) const
Definition: file_information.cpp:1511
bool hasDotnetMetadataStream() const
Definition: file_information.cpp:3626
std::string getSegmentTableOffsetStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:497
std::string getSectionSha256(std::size_t index) const
Definition: file_information.cpp:2429
std::string getNumberOfBitsInByteStr() const
Definition: file_information.cpp:469
std::string getRelocationOffsetStr(std::size_t tableIndex, std::size_t relocationIndex, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2952
std::string getRichHeaderRecordNumberOfUsesStr(std::size_t position) const
Definition: file_information.cpp:744
std::string getExportOrdinalNumberStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:1379
std::string getOverlayEntropyStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:669
bool getVisualBasicIsPcode() const
Definition: file_information.cpp:801
std::string getEpSectionIndex() const
Definition: file_information.cpp:3310
void setNumberOfDeclaredDataDirectories(unsigned long long noOfDirectories)
Definition: file_information.cpp:4114
std::string getHeapReserveSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:615
void setDotnetRuntimeVersion(std::uint64_t majorVersion, std::uint64_t minorVersion)
Definition: file_information.cpp:4331
std::string getSymbolTableOffsetStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2688
std::string getFileHeaderVersion() const
Definition: file_information.cpp:346
std::string getImportOrdinalNumberStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:1265
void setDotnetBlobStreamInfo(std::uint64_t streamOffset, std::uint64_t streamSize)
Definition: file_information.cpp:4370
void setOverlaySize(unsigned long long size)
Definition: file_information.cpp:4141
std::string getDotnetBlobStreamOffsetStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3531
const Strings & getStrings() const
Definition: file_information.cpp:3197
std::string getPdbPath() const
Definition: file_information.cpp:1129
std::string getTlsCharacteristicsStr() const
Definition: file_information.cpp:2140
void addSection(FileSection &fileSection)
Definition: file_information.cpp:4525
std::size_t getNumberOfStoredDataDirectories() const
Definition: file_information.cpp:238
void setFileHeaderVersion(const std::string &version)
Definition: file_information.cpp:3889
std::string getResourceSha256(std::size_t index) const
Definition: file_information.cpp:1445
void setCrc32(const std::string &fileCrc32)
Definition: file_information.cpp:3736
std::string getNumberOfDeclaredSymbolTablesStr() const
Definition: file_information.cpp:642
std::string getCertificateSubjectSurname(std::size_t index) const
Definition: file_information.cpp:2004
std::size_t getTlsNumberOfCallBacks() const
Definition: file_information.cpp:2149
std::string compactManifest
compact version of XML manifest
Definition: file_information.h:43
std::string getCertificateSubjectNameQualifier(std::size_t index) const
Definition: file_information.cpp:1944
void setSectionTableMd5(const std::string &sMd5)
Definition: file_information.cpp:3772
ImportTable importTable
information about imports
Definition: file_information.h:48
void setOverlayOffset(unsigned long long offset)
Definition: file_information.cpp:4132
std::string getResourceOffsetStr(std::size_t index, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:1606
void setFileVersion(const std::string &version)
Definition: file_information.cpp:3880
unsigned long long getDynamicEntryFlagsSize(std::size_t sectionIndex, std::size_t entryIndex) const
Definition: file_information.cpp:3077
const std::vector< std::shared_ptr< retdec::fileformat::DotnetClass > > & getDotnetDefinedClassList() const
Definition: file_information.cpp:3608
void setDotnetImportedClassList(const std::vector< std::shared_ptr< retdec::fileformat::DotnetClass >> &dotnetClassList)
Definition: file_information.cpp:4426
std::string getEpOffsetStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3292
std::string getExportAddressStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:1368
std::string getNumberOfDeclaredDataDirectoriesStr() const
Definition: file_information.cpp:633
const std::vector< Pattern > & getOtherPatterns() const
Definition: file_information.cpp:3179
std::string getSymbolBind(std::size_t tableIndex, std::size_t symbolIndex) const
Definition: file_information.cpp:2721
void setFileStatus(const std::string &fileStatus)
Definition: file_information.cpp:3871
bool isSignaturePresent() const
Definition: file_information.cpp:3215
VisualBasicInfo visualBasicInfo
visual basic information
Definition: file_information.h:46
void setNumberOfDeclaredSymbolTables(unsigned long long noOfTables)
Definition: file_information.cpp:4123
std::string getResourceIconhashSha256() const
Definition: file_information.cpp:1472
std::string getVisualBasicLanguageDLLPrimaryLCIDStr() const
Definition: file_information.cpp:864
void addFileFlagsDescriptor(std::string descriptor, std::string abbreviation)
Definition: file_information.cpp:4472
std::string getSegmentVirtualAddressStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2273
void setDotnetDefinedClassList(const std::vector< std::shared_ptr< retdec::fileformat::DotnetClass >> &dotnetClassList)
Definition: file_information.cpp:4417
FileHeader header
file header
Definition: file_information.h:44
void setFileClass(const std::string &fileclass)
Definition: file_information.cpp:3808
std::string getSymbolTableSpecialInformationValue(std::size_t tableIndex, std::size_t specInfoIndex, std::size_t recordIndex) const
Definition: file_information.cpp:2843
std::size_t getNumberOfLoadedSegments() const
Definition: file_information.cpp:687
void setEndianness(const std::string &fileEndianness)
Definition: file_information.cpp:3835
std::string getDotnetUserStringStreamSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3581
std::string getDllFlagsStr() const
Definition: file_information.cpp:439
void setDotnetStringStreamInfo(std::uint64_t streamOffset, std::uint64_t streamSize)
Definition: file_information.cpp:4360
void addDataDirectory(DataDirectory &dataDirectory)
Definition: file_information.cpp:4507
ExportTable exportTable
information about exports
Definition: file_information.h:49
std::string failedDepsList
Definition: file_information.h:68
void setLoaderStatusMessage(const std::string &statusMessage)
Definition: file_information.cpp:4303
std::string isSignatureVerifiedStr(const std::string &t="true", const std::string &f="false") const
Definition: file_information.cpp:3235
std::string getSectionExtraInfoStr(std::size_t position) const
Definition: file_information.cpp:2618
void setRichHeader(const retdec::fileformat::RichHeader *rHeader)
Definition: file_information.cpp:4159
void setCertificateTable(const retdec::fileformat::CertificateTable *sTable)
Definition: file_information.cpp:4267
Strings strings
detected strings
Definition: file_information.h:65
void setStatus(retdec::cpdetect::ReturnCode state)
Definition: file_information.cpp:3718
bool isVisualBasicUsed() const
Definition: file_information.cpp:792
std::size_t getNumberOfStoredResources() const
Definition: file_information.cpp:1397
std::size_t getNumberOfStoredDynamicSections() const
Definition: file_information.cpp:283
void getSectionFlagsDescriptors(std::size_t position, std::vector< std::string > &desc, std::vector< std::string > &abb) const
Definition: file_information.cpp:2480
void addElfNotes(ElfNotes &notes)
Definition: file_information.cpp:4561
std::string getSegmentAlignmentStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2317
std::string getRichHeaderOffsetStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:705
std::string getSectionName(std::size_t position) const
Definition: file_information.cpp:2378
bool hasCertificateTableRecords() const
Definition: file_information.cpp:2063
std::string getHeapCommitSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:624
void setHeapCommitSize(unsigned long long size)
Definition: file_information.cpp:4105
retdec::cpdetect::ToolInformation toolInfo
detected tools
Definition: file_information.h:72
std::string getSectionTableMd5() const
Definition: file_information.cpp:148
std::string getRelocationTableAppliesSectionName(std::size_t position) const
Definition: file_information.cpp:2909
void setPdbPath(const std::string &sPath)
Definition: file_information.cpp:4195
std::string getCertificateIssuerNameQualifier(std::size_t index) const
Definition: file_information.cpp:1794
void setNumberOfDeclaredSegments(unsigned long long noOfSegments)
Definition: file_information.cpp:4006
std::string getCertificateSubjectPseudonym(std::size_t index) const
Definition: file_information.cpp:2034
std::string getRichHeaderRecordVisualStudioNameStr(std::size_t position) const
Definition: file_information.cpp:764
std::string getTlsIndexAddrStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2111
std::string getPdbGuid() const
Definition: file_information.cpp:1138
std::string getDotnetBlobStreamSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3541
std::string getVisualBasicTypeLibLCIDStr() const
Definition: file_information.cpp:1003
std::string getVisualBasicProjectPrimaryLCIDStr() const
Definition: file_information.cpp:891
bool hasStrings() const
Definition: file_information.cpp:3206
std::string getVisualBasicCOMObjectType() const
Definition: file_information.cpp:1057
std::string getImphashMd5() const
Definition: file_information.cpp:1194
std::string endianness
endianness
Definition: file_information.h:41
std::string getSectionLineNumbersOffsetStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2577
std::string fileType
type of file (e.g. executable file)
Definition: file_information.h:39
std::string getRichHeaderRecordProductBuildStr(std::size_t position) const
Definition: file_information.cpp:734
void setSha256(const std::string &fileSha256)
Definition: file_information.cpp:3754
void setLoadedBaseAddress(unsigned long long baseAddress)
Definition: file_information.cpp:4294
std::size_t getNumberOfStoredDotnetImportedClasses() const
Definition: file_information.cpp:3471
std::string getVisualBasicProjectName() const
Definition: file_information.cpp:855
std::string getVisualBasicLanguageDLL() const
Definition: file_information.cpp:810
const std::vector< Pattern > & getMalwarePatterns() const
Definition: file_information.cpp:3170
std::string getSegmentType(std::size_t position) const
Definition: file_information.cpp:2211
std::string getImageBaseStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3272
std::string getAnomalyIdentifier(std::size_t position) const
Definition: file_information.cpp:3699
retdec::fileformat::Format fileFormatEnum
format of input file in enumeration representation
Definition: file_information.h:36
std::string getLoadedBaseAddressStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3329
std::size_t getNumberOfVersionInfoStrings() const
Definition: file_information.cpp:1415
std::string getVisualBasicObjectTableHashMd5() const
Definition: file_information.cpp:1102
void setSegmentTableOffset(unsigned long long offset)
Definition: file_information.cpp:3979
void setNumberOfBitsInWord(unsigned long long bitsInWord)
Definition: file_information.cpp:3961
std::string getCertificateIssuerEmailAddress(std::size_t index) const
Definition: file_information.cpp:1904
void setFileHeaderSize(unsigned long long size)
Definition: file_information.cpp:3970
const Pattern * getMalwarePattern(std::size_t position) const
Definition: file_information.cpp:3142
std::string getSectionEntrySizeStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2523
std::size_t getNumberOfStoredRelocationsInTable(std::size_t position) const
Definition: file_information.cpp:2856
void addDynamicSection(DynamicSection &section)
Definition: file_information.cpp:4552
void setNumberOfBitsInByte(unsigned long long bitsInByte)
Definition: file_information.cpp:3952
std::vector< SymbolTable > symbolTables
symbol tables
Definition: file_information.h:58
void addMalwarePattern(Pattern &pattern)
Definition: file_information.cpp:4626
std::string getCertificateIssuerSurname(std::size_t index) const
Definition: file_information.cpp:1854
std::size_t getNumberOfStoredImportLibraries() const
Definition: file_information.cpp:1167
std::string getCrc32() const
Definition: file_information.cpp:112
void addTool(retdec::cpdetect::DetectResult &tool)
Definition: file_information.cpp:4660
std::size_t getSymbolTableNumberOfStoredSpecialInformation(std::size_t position) const
Definition: file_information.cpp:2798
void setVisualBasicUsed(bool set)
Definition: file_information.cpp:4177
DotnetInfo dotnetInfo
.NET information
Definition: file_information.h:67
void setDotnetMetadataStreamInfo(std::uint64_t streamOffset, std::uint64_t streamSize)
Definition: file_information.cpp:4350
std::string getCertificateSubjectOrganization(std::size_t index) const
Definition: file_information.cpp:1924
std::string getDataDirectorySizeStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2201
std::string getCertificateSubjectSerialNumber(std::size_t index) const
Definition: file_information.cpp:1974
std::string getExphashCrc32() const
Definition: file_information.cpp:1329
void addCryptoPattern(Pattern &pattern)
Definition: file_information.cpp:4580
bool hasExportTableRecords() const
Definition: file_information.cpp:1388
std::vector< std::pair< std::string, std::string > > anomalies
If non-empty, trhis contains the name of the dependency list that failed to load.
Definition: file_information.h:69
void setCoffFileHeaderSize(unsigned long long headerSize)
Definition: file_information.cpp:4051
std::string getDotnetMetadataStreamOffsetStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3491
void setFileType(const std::string &filetype)
Definition: file_information.cpp:3817
void setExportTable(const retdec::fileformat::ExportTable *sTable)
Definition: file_information.cpp:4240
std::string getSectionTableEntrySizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:543
std::string getVisualBasicObjectTableHashSha256() const
Definition: file_information.cpp:1111
std::string getCertificateSha1Digest(std::size_t index) const
Definition: file_information.cpp:1724
std::string getSymbolType(std::size_t tableIndex, std::size_t symbolIndex) const
Definition: file_information.cpp:2710
std::string getEpBytes() const
Definition: file_information.cpp:3301
std::string getNumberOfDeclaredDynamicEntriesInSectionStr(std::size_t position) const
Definition: file_information.cpp:3022
std::string getVisualBasicExternTableHashSha256() const
Definition: file_information.cpp:1084
std::string getSectionLinkToOtherSectionStr(std::size_t position) const
Definition: file_information.cpp:2608
std::vector< DynamicSection > dynamicSections
information about dynamic sections
Definition: file_information.h:60
const std::string & getLoaderStatusMessage() const
Definition: file_information.cpp:3358
bool hasDotnetBlobStream() const
Definition: file_information.cpp:3644
void setStackCommitSize(unsigned long long size)
Definition: file_information.cpp:4087
unsigned long long getSectionFlagsSize(std::size_t position) const
Definition: file_information.cpp:2439
const std::vector< Pattern > & getCryptoPatterns() const
Definition: file_information.cpp:3161
std::size_t getNumberOfDetectedCompilers() const
Definition: file_information.cpp:3262
std::string getOverlaySizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:660
std::string getVisualBasicProjectHelpFile() const
Definition: file_information.cpp:846
void setCompactManifest(const std::string &fileCompactManifest)
Definition: file_information.cpp:3853
std::string getRelocationCalculatedValueStr(std::size_t tableIndex, std::size_t relocationIndex) const
Definition: file_information.cpp:2996
std::string getDynamicSectionName(std::size_t position) const
Definition: file_information.cpp:3032
std::string getVisualBasicCOMObjectCLSID() const
Definition: file_information.cpp:1030
std::string getResourceLanguageIdStr(std::size_t index, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:1584
std::vector< Pattern > cryptoPatterns
detected crypto patterns
Definition: file_information.h:62
std::string getTlsZeroFillSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2131
void setDotnetMetadataHeaderAddress(std::uint64_t address)
Definition: file_information.cpp:4340
std::string getSectionSizeInFileStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2512
void setSignatureVerified(bool verified)
Definition: file_information.cpp:4285
std::string getVersionInfoLanguageLcid(std::size_t index) const
Definition: file_information.cpp:1521
std::size_t getNumberOfStoredSections() const
Definition: file_information.cpp:256
void getFileFlagsDescriptors(std::vector< std::string > &desc, std::vector< std::string > &abb) const
Definition: file_information.cpp:412
std::string getNumberOfDeclaredRelocationsInTableStr(std::size_t position) const
Definition: file_information.cpp:2879
std::string getExportName(std::size_t position) const
Definition: file_information.cpp:1357
std::string getTlsCallBackAddrStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2160
void setOsAbiVersion(const std::string &abiversion)
Definition: file_information.cpp:3907
std::string getExphashMd5() const
Definition: file_information.cpp:1338
std::string getSha256() const
Definition: file_information.cpp:130
std::string getPdbTimeStampStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:1158
std::string sha256
SHA256 of input file.
Definition: file_information.h:31
std::string getDynamicEntryType(std::size_t sectionIndex, std::size_t entryIndex) const
Definition: file_information.cpp:3043
std::string getCertificateSha256Digest(std::size_t index) const
Definition: file_information.cpp:1734
void setDllFlagsSize(unsigned long long size)
Definition: file_information.cpp:3934
void setImportTable(const retdec::fileformat::ImportTable *sTable)
Definition: file_information.cpp:4231
std::string getDotnetImportedClassNameWithParentClassIndex(std::size_t position) const
Definition: file_information.cpp:3415
std::string getTargetArchitecture() const
Definition: file_information.cpp:202
std::string getVisualBasicTypeLibCLSID() const
Definition: file_information.cpp:976
std::string getCertificateSubjectEmailAddress(std::size_t index) const
Definition: file_information.cpp:2054
std::string getTimeStamp() const
Definition: file_information.cpp:319
std::string getCertificateIssuerTitle(std::size_t index) const
Definition: file_information.cpp:1844
std::string getDotnetGuidStreamOffsetStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3551
void addAuxVectorEntry(const std::string &name, std::size_t value)
Definition: file_information.cpp:4571
bool hasDotnetUserStringStream() const
Definition: file_information.cpp:3662
void setTlsInfo(const retdec::fileformat::TlsInfo *info)
Definition: file_information.cpp:4276
std::size_t getCertificateTableCounterSignerCertificateIndex() const
Definition: file_information.cpp:1654
void setDotnetTypeLibId(const std::string &typeLibId)
Definition: file_information.cpp:4408
std::string getFileClass() const
Definition: file_information.cpp:184
std::string getSegmentSizeInFileStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2295
unsigned long long getDllFlagsSize() const
Definition: file_information.cpp:421
std::string getSectionSizeInMemoryStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2545
std::string getSegmentCrc32(std::size_t index) const
Definition: file_information.cpp:2221
std::string getRelocationTableAssociatedSymbolTableIndex(std::size_t position) const
Definition: file_information.cpp:2919
std::string getSegmentOffsetStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2262
std::string getCertificateValidUntil(std::size_t index) const
Definition: file_information.cpp:1674
std::string getCertificateIssuerOrganizationalUnit(std::size_t index) const
Definition: file_information.cpp:1784
std::string getDotnetTypeRefhashCrc32() const
Definition: file_information.cpp:3444
void setDotnetTypeRefhashMd5(const std::string &md5)
Definition: file_information.cpp:4444
void setOsAbi(const std::string &osabi)
Definition: file_information.cpp:3898
std::string getSectionTableOffsetStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:534
std::string getResourceName(std::size_t index) const
Definition: file_information.cpp:1491
std::vector< std::string > messages
error, warning and other messages
Definition: file_information.h:73
unsigned long long getDllFlags() const
Definition: file_information.cpp:430
void setDotnetTypeRefhashSha256(const std::string &sha256)
Definition: file_information.cpp:4453
std::string getNumberOfDeclaredSectionsStr() const
Definition: file_information.cpp:561
std::string getVersionInfoStringValue(std::size_t index) const
Definition: file_information.cpp:1551
void addFileMapEntry(const FileMapEntry &entry)
Definition: file_information.cpp:4566
std::string getSectionType(std::size_t position) const
Definition: file_information.cpp:2388
std::size_t getNumberOfDllFlagsDescriptors() const
Definition: file_information.cpp:448
std::string getCertificateSubjectCommonName(std::size_t index) const
Definition: file_information.cpp:1964
void clearDllFlagsDescriptors()
Definition: file_information.cpp:4498
std::string getDotnetImportedClassLibName(std::size_t position) const
Definition: file_information.cpp:3425
const Pattern * getCryptoPattern(std::size_t position) const
Definition: file_information.cpp:3132
std::string getVersionInfoLanguageCodePage(std::size_t index) const
Definition: file_information.cpp:1531
std::string getCompactManifest() const
Definition: file_information.cpp:229
std::string getDotnetTypeRefhashMd5() const
Definition: file_information.cpp:3453
bool hasRichHeaderRecords() const
Definition: file_information.cpp:783
std::string getOsAbiVersion() const
Definition: file_information.cpp:364
std::string getRelocationTableAssociatedSymbolTableName(std::size_t position) const
Definition: file_information.cpp:2899
void clearFileFlagsDescriptors()
Definition: file_information.cpp:4480
void setChecksum(unsigned long long fileChecksum)
Definition: file_information.cpp:4069
std::string getVisualBasicCOMObjectEventsCLSID() const
Definition: file_information.cpp:1048
std::string getResourceIconhashMd5() const
Definition: file_information.cpp:1463
std::size_t getNumberOfStoredRecordsInRichHeader() const
Definition: file_information.cpp:678
std::string getSectionRelocationsOffsetStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2556
std::string getPdbType() const
Definition: file_information.cpp:1120
std::string getDotnetMetadataHeaderAddressStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3481
std::string getVisualBasicProjectPath() const
Definition: file_information.cpp:882
std::string secSha256
Definition: file_information.h:34
std::size_t getNumberOfStoredSegments() const
Definition: file_information.cpp:247
std::size_t getNumberOfStoredExports() const
Definition: file_information.cpp:1320
std::string getResourceType(std::size_t index) const
Definition: file_information.cpp:1501
std::string getSymbolAddressStr(std::size_t tableIndex, std::size_t symbolIndex, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2777
void addSymbolTable(SymbolTable &table)
Definition: file_information.cpp:4534
void setDotnetModuleVersionId(const std::string &moduleVersionId)
Definition: file_information.cpp:4399
std::string getCertificateIssuerCommonName(std::size_t index) const
Definition: file_information.cpp:1814
std::string getDotnetUserStringStreamOffsetStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3571
std::string getSegmentTableSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:515
ElfCore elfCoreInfo
information about ELF core files
Definition: file_information.h:53
std::string getSymbolTableSpecialInformationDescription(std::size_t tableIndex, std::size_t specInfoIndex) const
Definition: file_information.cpp:2820
std::size_t getNumberOfStoredDynamicEntriesInSection(std::size_t position) const
Definition: file_information.cpp:3009
std::string getVisualBasicObjectTableHashCrc32() const
Definition: file_information.cpp:1093
bool isSignatureVerified() const
Definition: file_information.cpp:3224
std::size_t getNumberOfDynamicEntryFlagsDescriptors(std::size_t sectionIndex, std::size_t entryIndex) const
Definition: file_information.cpp:3110
unsigned long long getDynamicEntryFlags(std::size_t sectionIndex, std::size_t entryIndex) const
Definition: file_information.cpp:3088
std::string getVisualBasicCOMObjectDescription() const
Definition: file_information.cpp:1021
std::string getVisualBasicExternApiName(std::size_t position) const
Definition: file_information.cpp:958
std::string getCertificatePublicKey(std::size_t index) const
Definition: file_information.cpp:1684
std::string getResourceIconPerceptualAvgHash() const
Definition: file_information.cpp:1481
void setOverlayEntropy(double entropy)
Definition: file_information.cpp:4150
std::string getDotnetStringStreamSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3521
std::vector< ElfNotes > elfNotes
information about ELF sections
Definition: file_information.h:61
std::string getDotnetImportedClassNestedName(std::size_t position) const
Definition: file_information.cpp:3405
void setMd5(const std::string &fileMd5)
Definition: file_information.cpp:3745
PdbInfo pdbInfo
information about related PDB file
Definition: file_information.h:47
void setVisualBasicInfo(const retdec::fileformat::VisualBasicInfo *vbInfo)
Definition: file_information.cpp:4168
std::string getDynamicEntryFlagsStr(std::size_t sectionIndex, std::size_t entryIndex) const
Definition: file_information.cpp:3099
std::size_t getNumberOfDetectedStrings() const
Definition: file_information.cpp:3188
std::size_t getNumberOfStoredSymbolsInTable(std::size_t position) const
Definition: file_information.cpp:2654
std::string getDotnetTypeRefhashSha256() const
Definition: file_information.cpp:3462
std::string getSectionNumberOfRelocationsStr(std::size_t position) const
Definition: file_information.cpp:2566
std::string fileFormat
format of input file in string representation
Definition: file_information.h:37
std::vector< FileSegment > segments
information about segments in file
Definition: file_information.h:56
std::string targetArchitecture
target architecture
Definition: file_information.h:40
void getDynamicEntryFlagsDescriptors(std::size_t sectionIndex, std::size_t entryIndex, std::vector< std::string > &desc, std::vector< std::string > &abb) const
Definition: file_information.cpp:3122
std::string getVisualBasicProjectDescription() const
Definition: file_information.cpp:837
std::string getFileHeaderSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:487
void setDotnetGuidStreamInfo(std::uint64_t streamOffset, std::uint64_t streamSize)
Definition: file_information.cpp:4380
std::string getTlsRawDataStartAddrStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2091
void setNumberOfDeclaredSections(unsigned long long noOfSections)
Definition: file_information.cpp:4042
std::string getVisualBasicExternTableHashCrc32() const
Definition: file_information.cpp:1066
void setManifest(const std::string &fileManifest)
Definition: file_information.cpp:3844
std::vector< FileSection > sections
information about sections in file
Definition: file_information.h:57
TlsInfo tlsInfo
information about thread-local storage
Definition: file_information.h:52
bool isTlsUsed() const
Definition: file_information.cpp:2169
void sortCryptoPatternMatches()
Definition: file_information.cpp:4617
std::string getNumberOfDeclaredSymbolsInTableStr(std::size_t position) const
Definition: file_information.cpp:2667
void setDotnetTypeRefhashCrc32(const std::string &crc32)
Definition: file_information.cpp:4435
std::string getSegmentIndexStr(std::size_t position) const
Definition: file_information.cpp:2251
retdec::cpdetect::ReturnCode status
Definition: file_information.h:27
std::string getCertificateIssuerCountry(std::size_t index) const
Definition: file_information.cpp:1764
std::size_t getNumberOfStoredRelocationTables() const
Definition: file_information.cpp:274
std::vector< Pattern > malwarePatterns
detected malware patterns
Definition: file_information.h:63
void setTargetArchitecture(const std::string &architecture)
Definition: file_information.cpp:3826
const ElfCore & getElfCoreInfo() const
Definition: file_information.cpp:3253
std::vector< Pattern > otherPatterns
other detected patterns
Definition: file_information.h:64
std::string getResourceMd5(std::size_t index) const
Definition: file_information.cpp:1435
std::string getCertificateSubjectState(std::size_t index) const
Definition: file_information.cpp:1954
std::string getManifest() const
Definition: file_information.cpp:220
void sortMalwarePatternMatches()
Definition: file_information.cpp:4634
std::string getCertificateIssuerState(std::size_t index) const
Definition: file_information.cpp:1804
std::string getRelocationAddendStr(std::size_t tableIndex, std::size_t relocationIndex) const
Definition: file_information.cpp:2985
std::string getRelocationSymbolName(std::size_t tableIndex, std::size_t relocationIndex) const
Definition: file_information.cpp:2940
std::string getDynamicEntryValueStr(std::size_t sectionIndex, std::size_t entryIndex, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3066
std::string getNumberOfBitsInWordStr() const
Definition: file_information.cpp:478
std::string getVisualBasicObjectTableGUID() const
Definition: file_information.cpp:967
std::string getResourceNameIdStr(std::size_t index, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:1562
std::string getFileType() const
Definition: file_information.cpp:193
std::string getSymbolValueStr(std::size_t tableIndex, std::size_t symbolIndex) const
Definition: file_information.cpp:2765
std::string getVisualBasicCOMObjectInterfaceCLSID() const
Definition: file_information.cpp:1039
void removeRedundantCryptoRules()
Definition: file_information.cpp:4588
const std::vector< std::shared_ptr< retdec::fileformat::DotnetClass > > & getDotnetImportedClassList() const
Definition: file_information.cpp:3617
std::string getPathToFile() const
Definition: file_information.cpp:103
void setSectionTableOffset(unsigned long long offset)
Definition: file_information.cpp:4015
bool hasCertificateTableCounterSignerCertificate() const
Definition: file_information.cpp:2081
std::string getRelocationTableAppliesSectionIndex(std::size_t position) const
Definition: file_information.cpp:2929
std::string getSegmentTableEntrySizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:506
bool hasDotnetGuidStream() const
Definition: file_information.cpp:3653
std::string getResourceSublanguageIdStr(std::size_t index, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:1595
std::string getMissingDepName(std::size_t position) const
Definition: file_information.cpp:1293
std::optional< bool > signatureVerified
indicates whether the signature is present and if it is verified
Definition: file_information.h:66
std::size_t getVisualBasicNumberOfObjects() const
Definition: file_information.cpp:929
void setDepsListFailedToLoad(const std::string &)
Definition: file_information.cpp:1311
std::string getSegmentSizeInMemoryStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2306
std::string getStackReserveSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:597
void setDotnetUsed(bool set)
Definition: file_information.cpp:4321
std::string getNumberOfLoadedSegmentsStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3339
std::string getRelocationTypeStr(std::size_t tableIndex, std::size_t relocationIndex) const
Definition: file_information.cpp:2974
std::string getSectionOffsetStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2501
std::string getVersionInfoStringName(std::size_t index) const
Definition: file_information.cpp:1541
std::string getImportAddressStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:1254
void getDllFlagsDescriptors(std::vector< std::string > &desc, std::vector< std::string > &abb) const
Definition: file_information.cpp:460
std::string getTlsRawDataEndAddrStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2101
std::string getDotnetImportedClassNameSpace(std::size_t position) const
Definition: file_information.cpp:3435
void setSegmentTableSize(unsigned long long tableSize)
Definition: file_information.cpp:3997
std::string getSymbolOther(std::size_t tableIndex, std::size_t symbolIndex) const
Definition: file_information.cpp:2732
std::string manifest
XML manifest.
Definition: file_information.h:42
void setFileFlagsSize(unsigned long long size)
Definition: file_information.cpp:3916
std::string getImphashSha256() const
Definition: file_information.cpp:1203
void setFileFlags(unsigned long long flagsArray)
Definition: file_information.cpp:3925
std::size_t getNumberOfMissingDeps() const
Definition: file_information.cpp:1283
ResourceTable resourceTable
information about resources in input file
Definition: file_information.h:50
unsigned long long getSegmentFlagsSize(std::size_t position) const
Definition: file_information.cpp:2327
std::string getPdbAgeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:1148
void setResourceTable(const retdec::fileformat::ResourceTable *sTable)
Definition: file_information.cpp:4249
std::string getSectionNumberOfLineNumbersStr(std::size_t position) const
Definition: file_information.cpp:2587
bool hasCertificateTableSignerCertificate() const
Definition: file_information.cpp:2072
LoaderInfo loaderInfo
information about loaded image
Definition: file_information.h:54
std::string getVisualBasicBackupLanguageDLL() const
Definition: file_information.cpp:819
std::string getSegmentPhysicalAddressStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2284
std::size_t getNumberOfVersionInfoLanguages() const
Definition: file_information.cpp:1406
std::string getSectionTableSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:552
std::string getSectionMd5(std::size_t index) const
Definition: file_information.cpp:2419
std::string getCertificateSubjectOrganizationalUnit(std::size_t index) const
Definition: file_information.cpp:1934
std::string getCertificateSubjectInitials(std::size_t index) const
Definition: file_information.cpp:2024
std::string getRelocationTableName(std::size_t position) const
Definition: file_information.cpp:2889
bool hasDotnetStringStream() const
Definition: file_information.cpp:3635
std::size_t getNumberOfMalwarePatterns() const
Definition: file_information.cpp:301
std::string getDotnetImportedClassName(std::size_t position) const
Definition: file_information.cpp:3395
void setDllFlags(unsigned long long flagsArray)
Definition: file_information.cpp:3943
std::string getImportUsageType(std::size_t position) const
Definition: file_information.cpp:1243
std::string getSegmentSha256(std::size_t index) const
Definition: file_information.cpp:2241
void setLoaderErrorInfo(const retdec::fileformat::LoaderErrorInfo &ldrErrInfo)
Definition: file_information.cpp:4312
void setPdbTimeStamp(std::size_t sTimeStamp)
Definition: file_information.cpp:4222
const std::string & getDotnetModuleVersionId() const
Definition: file_information.cpp:3590
std::string getRichHeaderRawBytesStr() const
Definition: file_information.cpp:773
const retdec::fileformat::LoaderErrorInfo & getLoaderErrorInfo() const
Definition: file_information.cpp:3367
std::string getSymbolName(std::size_t tableIndex, std::size_t symbolIndex) const
Definition: file_information.cpp:2699
std::string getEpSectionName() const
Definition: file_information.cpp:3319
std::size_t getNumberOfAnomalies() const
Definition: file_information.cpp:3689
const Pattern * getOtherPattern(std::size_t position) const
Definition: file_information.cpp:3152
std::string getResourceIconhashCrc32() const
Definition: file_information.cpp:1454
std::string getSymbolTableSpecialInformationAbbreviation(std::size_t tableIndex, std::size_t specInfoIndex) const
Definition: file_information.cpp:2831
void setPdbGuid(const std::string &sGuid)
Definition: file_information.cpp:4204
void setFileFormat(const std::string &fileformat)
Definition: file_information.cpp:3799
void setHeapReserveSize(unsigned long long size)
Definition: file_information.cpp:4096
std::size_t getNumberOfSectionFlagsDescriptors(std::size_t position) const
Definition: file_information.cpp:2469
const std::string & getDotnetRuntimeVersion() const
Definition: file_information.cpp:3385
std::string getCoffFileHeaderSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:570
std::string getCertificateSubjectRawStr(std::size_t index) const
Definition: file_information.cpp:1754
std::string getVisualBasicTypeLibMinorVersionStr() const
Definition: file_information.cpp:994
std::string getMd5() const
Definition: file_information.cpp:121
std::string getOptionalHeaderSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:579
void addRelocationTable(RelocationTable &table)
Definition: file_information.cpp:4543
std::string getCertificateIssuerSerialNumber(std::size_t index) const
Definition: file_information.cpp:1824
std::size_t getNumberOfSegmentFlagsDescriptors(std::size_t position) const
Definition: file_information.cpp:2357
std::string secMd5
MD5 of section table.
Definition: file_information.h:33
void addLoadedSegment(const LoadedSegment &segment)
Definition: file_information.cpp:4669
std::string getCertificateSubjectLocality(std::size_t index) const
Definition: file_information.cpp:1984
CertificateTable certificateTable
information about certificates
Definition: file_information.h:51
std::string getSectionMemoryAlignmentStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2598
std::string getNumberOfStoredRelocationsInTableStr(std::size_t position) const
Definition: file_information.cpp:2866
std::string getCertificateIssuerGivenName(std::size_t index) const
Definition: file_information.cpp:1864
std::string getSymbolIndexStr(std::size_t tableIndex, std::size_t symbolIndex) const
Definition: file_information.cpp:2754
const LoadedSegment & getLoadedSegment(std::size_t index) const
Definition: file_information.cpp:3349
std::size_t getCertificateTableSignerCertificateIndex() const
Definition: file_information.cpp:1645
std::size_t getNumberOfStoredImports() const
Definition: file_information.cpp:1176
std::string getImphashCrc32() const
Definition: file_information.cpp:1185
const std::string & getDotnetTypeLibId() const
Definition: file_information.cpp:3599
std::string getSectionIndexStr(std::size_t position) const
Definition: file_information.cpp:2490
std::vector< DataDirectory > directories
information about data directories
Definition: file_information.h:55
std::string getCertificateSubjectGenerationQualifier(std::size_t index) const
Definition: file_information.cpp:2044
std::string getCertificateIssuerPseudonym(std::size_t index) const
Definition: file_information.cpp:1884
std::string getSectionTableCrc32() const
Definition: file_information.cpp:139
std::string getCertificateSignatureAlgorithm(std::size_t index) const
Definition: file_information.cpp:1704
void setSectionTableSha256(const std::string &sSha256)
Definition: file_information.cpp:3781
void setSectionTableEntrySize(unsigned long long entrySize)
Definition: file_information.cpp:4024
std::size_t getVisualBasicNumberOfExterns() const
Definition: file_information.cpp:938
std::string getStackCommitSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:606
std::string getDotnetGuidStreamSizeStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3561
std::string getSectionRelocationsLineOffsetStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2640
std::string getSymbolTableName(std::size_t position) const
Definition: file_information.cpp:2677
std::string secCrc32
CRC32 of section table.
Definition: file_information.h:32
std::string getResourceCrc32(std::size_t index) const
Definition: file_information.cpp:1425
std::string getRichHeaderRecordProductIdStr(std::size_t position) const
Definition: file_information.cpp:724
const retdec::fileformat::VisualBasicObject * getVisualBasicObject(std::size_t position) const
Definition: file_information.cpp:910
unsigned long long getSegmentFlags(std::size_t position) const
Definition: file_information.cpp:2337
void setTimeStamp(const std::string &timestamp)
Definition: file_information.cpp:3862
void setStrings(const std::vector< retdec::fileformat::String > *sStrings)
Definition: file_information.cpp:4258
std::string getDotnetStringStreamOffsetStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:3511
std::string getSectionEntropy(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: file_information.cpp:2399
std::size_t getNumberOfStoredCertificates() const
Definition: file_information.cpp:1635
std::string getSectionCrc32(std::size_t index) const
Definition: file_information.cpp:2409
std::string getCertificateIssuerOrganization(std::size_t index) const
Definition: file_information.cpp:1774
std::string getVisualBasicExternModuleName(std::size_t position) const
Definition: file_information.cpp:948
std::size_t getNumberOfFileFlagsDescriptors() const
Definition: file_information.cpp:400
Definition: elf_core.h:22
Definition: file_section.h:23
Definition: file_segment.h:23
Definition: import_table.h:19
Definition: loader_info.h:17
Definition: loader_info.h:35
Definition: pattern.h:22
Definition: pdb_info.h:22
Definition: relocation_table.h:24
Definition: resource_table.h:25
Definition: rich_header.h:19
Definition: strings.h:21
Definition: symbol_table.h:26
Definition: tls_info.h:19
Definition: visual_basic_info.h:21
Class for tool detection.
types for FileInformation class.
ReturnCode
Definition: cptypes.h:23
Format
Definition: fftypes.h:44
Definition: archive_wrapper.h:19
Definition: cptypes.h:129
Definition: cptypes.h:177
Definition: file_format.h:31