|
LIEF: Library to Instrument Executable Formats Version 0.17.4
|
Class that represents a COFF Binary. More...
#include <Binary.hpp>
Public Types | |
| using | sections_t = std::vector<std::unique_ptr<Section>> |
| Internal container used to store COFF's section. | |
| using | it_sections = ref_iterator<sections_t&, Section*> |
| Iterator that outputs Section& object. | |
| using | it_const_sections = const_ref_iterator<const sections_t&, const Section*> |
| Iterator that outputs const Section& object. | |
| using | relocations_t = std::vector<std::unique_ptr<Relocation>> |
| Internal container used to store COFF's relocations. | |
| using | it_relocations = ref_iterator<relocations_t&, Relocation*> |
| Iterator that outputs Relocation& object. | |
| using | it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*> |
| Iterator that outputs const Relocation& object. | |
| using | strings_table_t = std::vector<String> |
| Internal container used to store COFF's strings. | |
| using | it_strings_table = ref_iterator<strings_table_t&> |
| Iterator that outputs String& object. | |
| using | it_const_strings_table = const_ref_iterator<const strings_table_t&> |
| Iterator that outputs const String& object. | |
| using | symbols_t = std::vector<std::unique_ptr<Symbol>> |
| Internal container used to store COFF's symbols. | |
| using | it_symbols = ref_iterator<symbols_t&, Symbol*> |
| Iterator that outputs Symbol& object. | |
| using | it_const_symbols = const_ref_iterator<const symbols_t&, const Symbol*> |
| Iterator that outputs Symbol& object. | |
| using | instructions_it = iterator_range<assembly::Instruction::Iterator> |
| Instruction iterator. | |
| using | it_functions = filter_iterator<symbols_t&, Symbol*> |
| Iterator which outputs COFF symbols representing functions. | |
| using | it_const_function = const_filter_iterator<const symbols_t&, const Symbol*> |
| Iterator which outputs COFF symbols representing functions. | |
Public Member Functions | |
| const Header & | header () const |
| The COFF header. | |
| Header & | header () |
| it_sections | sections () |
| Iterator over the different sections located in this COFF binary. | |
| it_const_sections | sections () const |
| it_relocations | relocations () |
| Iterator over all the relocations used by this COFF binary. | |
| it_const_relocations | relocations () const |
| it_symbols | symbols () |
| Iterator over the COFF's symbols. | |
| it_const_symbols | symbols () const |
| it_const_strings_table | string_table () const |
| Iterator over the COFF's strings. | |
| it_strings_table | string_table () |
| String * | find_string (uint32_t offset) |
| Try to find the COFF string at the given offset in the COFF string table. | |
| const String * | find_string (uint32_t offset) const |
| it_const_function | functions () const |
| Iterator over the functions implemented in this COFF. | |
| it_functions | functions () |
| const Symbol * | find_function (const std::string &name) const |
| Try to find the function (symbol) with the given name. | |
| Symbol * | find_function (const std::string &name) |
| const Symbol * | find_demangled_function (const std::string &name) const |
| Try to find the function (symbol) with the given demangled name. | |
| Symbol * | find_demangled_function (const std::string &name) |
| instructions_it | disassemble (const Symbol &symbol) const |
| Disassemble code for the given symbol. | |
| instructions_it | disassemble (const std::string &symbol) const |
| Disassemble code for the given symbol name. | |
| instructions_it | disassemble (const uint8_t *buffer, size_t size, uint64_t address=0) const |
| Disassemble code provided by the given buffer at the specified address parameter. | |
| instructions_it | disassemble (const std::vector< uint8_t > &buffer, uint64_t address=0) const |
| Disassemble code provided by the given vector of bytes at the specified address parameter. | |
| instructions_it | disassemble (LIEF::span< const uint8_t > buffer, uint64_t address=0) const |
| instructions_it | disassemble (LIEF::span< uint8_t > buffer, uint64_t address=0) const |
| std::string | to_string () const |
| ~Binary () | |
Instruction iterator.
| using LIEF::COFF::Binary::it_const_function = const_filter_iterator<const symbols_t&, const Symbol*> |
Iterator which outputs COFF symbols representing functions.
| using LIEF::COFF::Binary::it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*> |
Iterator that outputs const Relocation& object.
| using LIEF::COFF::Binary::it_const_sections = const_ref_iterator<const sections_t&, const Section*> |
Iterator that outputs const Section& object.
Iterator that outputs const String& object.
| using LIEF::COFF::Binary::it_const_symbols = const_ref_iterator<const symbols_t&, const Symbol*> |
Iterator that outputs Symbol& object.
Iterator which outputs COFF symbols representing functions.
Iterator that outputs Relocation& object.
| using LIEF::COFF::Binary::it_sections = ref_iterator<sections_t&, Section*> |
Iterator that outputs Section& object.
Iterator that outputs String& object.
| using LIEF::COFF::Binary::it_symbols = ref_iterator<symbols_t&, Symbol*> |
Iterator that outputs Symbol& object.
| using LIEF::COFF::Binary::relocations_t = std::vector<std::unique_ptr<Relocation>> |
Internal container used to store COFF's relocations.
| using LIEF::COFF::Binary::sections_t = std::vector<std::unique_ptr<Section>> |
Internal container used to store COFF's section.
| using LIEF::COFF::Binary::strings_table_t = std::vector<String> |
Internal container used to store COFF's strings.
| using LIEF::COFF::Binary::symbols_t = std::vector<std::unique_ptr<Symbol>> |
Internal container used to store COFF's symbols.
| LIEF::COFF::Binary::~Binary | ( | ) |
References LIEF_LOCAL.
| instructions_it LIEF::COFF::Binary::disassemble | ( | const std::string & | symbol | ) | const |
Disassemble code for the given symbol name.
|
inline |
Disassemble code provided by the given vector of bytes at the specified address parameter.
References disassemble().
| instructions_it LIEF::COFF::Binary::disassemble | ( | const Symbol & | symbol | ) | const |
Disassemble code for the given symbol.
Referenced by disassemble(), disassemble(), and disassemble().
| instructions_it LIEF::COFF::Binary::disassemble | ( | const uint8_t * | buffer, |
| size_t | size, | ||
| uint64_t | address = 0 ) const |
Disassemble code provided by the given buffer at the specified address parameter.
|
inline |
References disassemble().
|
inline |
References disassemble().
|
inline |
| const Symbol * LIEF::COFF::Binary::find_demangled_function | ( | const std::string & | name | ) | const |
Try to find the function (symbol) with the given demangled name.
|
inline |
| const Symbol * LIEF::COFF::Binary::find_function | ( | const std::string & | name | ) | const |
Try to find the function (symbol) with the given name.
|
inline |
Try to find the COFF string at the given offset in the COFF string table.
Referenced by find_string().
|
inline |
References find_string().
| it_functions LIEF::COFF::Binary::functions | ( | ) |
| it_const_function LIEF::COFF::Binary::functions | ( | ) | const |
Iterator over the functions implemented in this COFF.
|
inline |
|
inline |
Iterator over all the relocations used by this COFF binary.
|
inline |
|
inline |
Iterator over the different sections located in this COFF binary.
|
inline |
|
inline |
|
inline |
Iterator over the COFF's strings.
|
inline |
Iterator over the COFF's symbols.
|
inline |
| std::string LIEF::COFF::Binary::to_string | ( | ) | const |
Referenced by operator<<.