16#ifndef LIEF_ART_PARSER_H
17#define LIEF_ART_PARSER_H
33 static std::unique_ptr<File>
parse(
const std::string& file);
34 static std::unique_ptr<File>
parse(std::vector<uint8_t> data,
const std::string& name =
"");
41 Parser(
const std::string& file);
42 Parser(std::vector<uint8_t> data);
47 template<
typename ART_T>
50 template<
typename ART_T>
51 size_t parse_header();
53 template<
typename ART_T,
typename PTR_T>
54 void parse_sections();
56 template<
typename ART_T,
typename PTR_T>
59 template<
typename ART_T,
typename PTR_T>
63 template<
typename ART_T,
typename PTR_T>
64 void parse_objects(
size_t offset,
size_t size);
66 template<
typename ART_T,
typename PTR_T>
67 void parse_art_fields(
size_t offset,
size_t size);
69 template<
typename ART_T,
typename PTR_T>
70 void parse_art_methods(
size_t offset,
size_t size);
72 template<
typename ART_T,
typename PTR_T>
73 void parse_interned_strings(
size_t offset,
size_t size);
76 template<
typename ART_T,
typename PTR_T>
77 void parse_dex_caches(
size_t offset,
size_t size);
80 template<
typename ART_T,
typename PTR_T>
81 void parse_dex_cache(
size_t object_offset);
84 template<
typename ART_T,
typename PTR_T>
85 void parse_class_roots(
size_t offset,
size_t size);
88 template<
typename ART_T,
typename PTR_T>
89 void parse_class(
size_t offset);
92 template<
typename ART_T,
typename PTR_T>
93 void parse_jstring(
size_t offset);
100 std::unique_ptr<File> file_;
101 std::unique_ptr<BinaryStream> stream_;
102 uint32_t imagebase_ = 0;
Class which parses an ART file and transform into a ART::File object.
Definition ART/Parser.hpp:31
static std::unique_ptr< File > parse(std::vector< uint8_t > data, const std::string &name="")
Parser & operator=(const Parser ©)=delete
static std::unique_ptr< File > parse(const std::string &file)
Parser(const Parser ©)=delete
uint32_t art_version_t
Definition ART/types.hpp:26
LIEF namespace.
Definition Abstract/Binary.hpp:32
#define LIEF_API
Definition visibility.h:41