Go to the documentation of this file.
16#ifndef LIEF_ART_PARSER_H
17#define LIEF_ART_PARSER_H
34 static std::unique_ptr<File>
parse(
const std::string& file);
35 static std::unique_ptr<File>
parse(std::vector<uint8_t> data,
const std::string& name =
"");
42 Parser(
const std::string& file);
43 Parser(std::vector<uint8_t> data);
46 void init(
const std::string& name, art_version_t version);
48 template<
typename ART_T>
51 template<
typename ART_T>
52 size_t parse_header();
54 template<
typename ART_T,
typename PTR_T>
55 void parse_sections();
57 template<
typename ART_T,
typename PTR_T>
60 template<
typename ART_T,
typename PTR_T>
64 template<
typename ART_T,
typename PTR_T>
65 void parse_objects(
size_t offset,
size_t size);
67 template<
typename ART_T,
typename PTR_T>
68 void parse_art_fields(
size_t offset,
size_t size);
70 template<
typename ART_T,
typename PTR_T>
71 void parse_art_methods(
size_t offset,
size_t size);
73 template<
typename ART_T,
typename PTR_T>
74 void parse_interned_strings(
size_t offset,
size_t size);
77 template<
typename ART_T,
typename PTR_T>
78 void parse_dex_caches(
size_t offset,
size_t size);
81 template<
typename ART_T,
typename PTR_T>
82 void parse_dex_cache(
size_t object_offset);
85 template<
typename ART_T,
typename PTR_T>
86 void parse_class_roots(
size_t offset,
size_t size);
89 template<
typename ART_T,
typename PTR_T>
90 void parse_class(
size_t offset);
93 template<
typename ART_T,
typename PTR_T>
94 void parse_jstring(
size_t offset);
101 std::unique_ptr<File> file_;
102 std::unique_ptr<BinaryStream> stream_;
103 uint32_t imagebase_ = 0;
Definition ART/File.hpp:29
Class which parses an ART file and transform into a ART::File object.
Definition ART/Parser.hpp:32
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
Class that is used to a read stream of data from different sources.
Definition BinaryStream.hpp:33
Namespace related to the LIEF's ART module.
Definition ART/enums.hpp:20
LIEF namespace.
Definition Abstract/Binary.hpp:36
#define LIEF_API
Definition visibility.h:41