ROSE  0.9.9.139
BinaryLoaderPe.h
1 #ifndef ROSE_BinaryAnalysis_BinaryLoaderPe_H
2 #define ROSE_BinaryAnalysis_BinaryLoaderPe_H
3 
4 #include "BinaryLoader.h"
5 
6 namespace Rose {
7 namespace BinaryAnalysis {
8 
9 class BinaryLoaderPe: public BinaryLoader {
10 public:
11  BinaryLoaderPe() {}
12 
13  BinaryLoaderPe(const BinaryLoaderPe &other)
14  : BinaryLoader(other)
15  {}
16 
17  virtual ~BinaryLoaderPe() {}
18 
19  /* Override virtual methods from BinaryLoader */
20 public:
21  virtual BinaryLoaderPe *clone() const {
22  return new BinaryLoaderPe(*this);
23  }
24 
25  virtual bool can_load(SgAsmGenericHeader*) const;
26 
28  virtual SgAsmGenericSectionPtrList get_remap_sections(SgAsmGenericHeader*);
29 
32  rose_addr_t *malign_lo, rose_addr_t *malign_hi,
33  rose_addr_t *va, rose_addr_t *mem_size,
34  rose_addr_t *offset, rose_addr_t *file_size, bool *map_private,
35  rose_addr_t *va_offset, bool *anon_lo, bool *anon_hi,
36  ConflictResolution *resolve);
37 };
38 
39 } // namespace
40 } // namespace
41 
42 #endif /*ROSE_BINARYLOADERPE_H*/
Contiguous region of a file.
virtual SgAsmGenericSectionPtrList get_remap_sections(SgAsmGenericHeader *)
Returns sections in order of their definition in the PE Section Table.
virtual bool can_load(SgAsmGenericHeader *) const
Predicate determining the suitability of a loader for a specific file header.
Main namespace for the ROSE library.
Base class for container file headers.
virtual BinaryLoaderPe * clone() const
Creates a new copy of a loader.
MappingContribution
Describes how a section contributes to the overall memory map.
Definition: BinaryLoader.h:55
ConflictResolution
Describes how conflicts are resolved when mapping a section.
Definition: BinaryLoader.h:63
Base class for loading a static or dynamic object.
Definition: BinaryLoader.h:48
virtual MappingContribution align_values(SgAsmGenericSection *, const MemoryMap::Ptr &, rose_addr_t *malign_lo, rose_addr_t *malign_hi, rose_addr_t *va, rose_addr_t *mem_size, rose_addr_t *offset, rose_addr_t *file_size, bool *map_private, rose_addr_t *va_offset, bool *anon_lo, bool *anon_hi, ConflictResolution *resolve)
Windows-specific PE section alignment.