36 using magic_t = std::array<uint8_t, 4>;
41 LIEF_LOCAL
Header(
const T* header);
46 magic_t magic()
const;
49 uint32_t image_begin()
const;
50 uint32_t image_size()
const;
52 uint32_t oat_checksum()
const;
54 uint32_t oat_file_begin()
const;
55 uint32_t oat_file_end()
const;
57 uint32_t oat_data_begin()
const;
58 uint32_t oat_data_end()
const;
60 int32_t patch_delta()
const;
62 uint32_t image_roots()
const;
64 uint32_t pointer_size()
const;
65 bool compile_pic()
const;
67 uint32_t nb_sections()
const;
68 uint32_t nb_methods()
const;
70 uint32_t boot_image_begin()
const;
71 uint32_t boot_image_size()
const;
73 uint32_t boot_oat_begin()
const;
74 uint32_t boot_oat_size()
const;
76 STORAGE_MODES storage_mode()
const;
78 uint32_t data_size()
const;
80 void accept(
Visitor& visitor)
const override;
83 LIEF_API
friend std::ostream& operator<<(std::ostream& os,
const Header& hdr);
89 art_version_t version_;
91 uint32_t image_begin_;
94 uint32_t oat_checksum_;
96 uint32_t oat_file_begin_;
97 uint32_t oat_file_end_;
99 uint32_t oat_data_begin_;
100 uint32_t oat_data_end_;
102 int32_t patch_delta_;
103 uint32_t image_roots_;
105 uint32_t pointer_size_;
109 uint32_t nb_sections_;
110 uint32_t nb_methods_;
116 uint32_t boot_image_begin_;
117 uint32_t boot_image_size_;
119 uint32_t boot_oat_begin_;
120 uint32_t boot_oat_size_;
122 STORAGE_MODES storage_mode_;