Go to the documentation of this file.
16#ifndef LIEF_COFF_PARSER_H
17#define LIEF_COFF_PARSER_H
39 std::unique_ptr<Binary>
parse(std::unique_ptr<BinaryStream> stream,
41 static std::unique_ptr<Binary>
parse(
const std::string& file,
47 return parse(std::unique_ptr<VectorStream>(
new VectorStream(std::move(*strm))), config);
55 Symbol* symbol =
nullptr;
57 friend bool operator<(
const SymSec& lhs,
const SymSec& rhs) {
58 return lhs.sec_idx < rhs.sec_idx;
61 friend bool operator==(
const SymSec& lhs,
const SymSec& rhs) {
62 return lhs.sec_idx == rhs.sec_idx && lhs.symbol == rhs.symbol;
65 friend bool operator!=(
const SymSec& lhs,
const SymSec& rhs) {
75 LIEF_LOCAL String* find_coff_string(uint32_t offset)
const;
82 Parser(std::unique_ptr<BinaryStream> stream,
const ParserConfig& config,
84 stream_(std::move(stream)),
93 ok_error_t parse_relocations(Section& section);
97 std::unique_ptr<BinaryStream> stream_;
98 std::unique_ptr<Binary> bin_;
101 std::map<uint32_t, size_t> memoize_coff_str_;
102 std::map<size_t, Symbol*> symbol_idx_;
105 ParserConfig config_;
Class that represents a COFF Binary.
Definition COFF/Binary.hpp:44
static const ParserConfig & default_conf()
Definition COFF/ParserConfig.hpp:26
Definition COFF/Parser.hpp:34
static std::unique_ptr< Binary > parse(std::unique_ptr< BinaryStream > stream, const ParserConfig &config=ParserConfig::default_conf())
Parse the COFF binary referenced by the stream argument with the given config.
std::vector< SymSec > SymSecMap
<=> std::unordered_multimap<section index, Symbol*>
Definition COFF/Parser.hpp:71
static std::unique_ptr< Binary > parse(const std::string &file, const ParserConfig &config=ParserConfig::default_conf())
Parse the COFF binary pointed by the file argument with the given config.
Definition COFF/Parser.hpp:43
This class represents a COFF section.
Definition COFF/Section.hpp:39
This class represents a string located in the COFF string table.
Definition String.hpp:33
This class represents a COFF symbol.
Definition COFF/Symbol.hpp:35
static result< VectorStream > from_file(const std::string &file)
Definition AuxiliarySymbol.hpp:29
LIEF namespace.
Definition Abstract/Binary.hpp:39
result< ok_t > ok_error_t
Opaque structure that is used by LIEF to avoid writing result<void> f(...). Instead,...
Definition errors.hpp:109
#define LIEF_API
Definition visibility.h:41
#define LIEF_LOCAL
Definition visibility.h:42