LIEF: Library to Instrument Executable Formats Version 0.17.0
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
16#ifndef LIEF_MACHO_FAT_BINARY_H
17#define LIEF_MACHO_FAT_BINARY_H
38 friend class LIEF::Parser;
43 using binaries_t = std::vector<std::unique_ptr<Binary>>;
46 using it_binaries = ref_iterator<binaries_t&, Binary*>;
49 using it_const_binaries = const_ref_iterator<const binaries_t&, Binary*>;
60 return binaries_.size();
65 return binaries_.empty();
71 it_const_binaries
begin()
const {
76 return it_binaries(binaries_).
end();
79 it_const_binaries
end()
const {
80 return it_const_binaries(binaries_).
end();
88 Binary*
at(
size_t index);
92 const Binary*
at(
size_t index)
const;
95 const Binary*
back()
const;
106 std::unique_ptr<Binary>
take(
size_t index);
112 std::unique_ptr<Binary>
take(Header::CPU_TYPE cpu);
116 void write(
const std::string& filename);
120 std::vector<uint8_t>
raw();
129 binaries_t binaries_;
Class which represents a MachO binary.
Definition MachO/Binary.hpp:86
Class used to rebuild a Mach-O file.
Definition MachO/Builder.hpp:58
Class which represent a Mach-O (fat) binary This object is also used for representing Mach-O binaries...
Definition FatBinary.hpp:36
it_binaries end()
Definition FatBinary.hpp:75
std::unique_ptr< Binary > pop_back()
Get a pointer to the last MachO::Binary object presents in this Fat Binary. It returns a nullptr if n...
bool empty() const
Checks whether this object contains MachO::Binary.
Definition FatBinary.hpp:64
std::unique_ptr< Binary > take(Header::CPU_TYPE cpu)
Take the underlying MachO::Binary that matches the given architecture If no binary with the architect...
std::vector< uint8_t > raw()
Reconstruct the Fat binary object and return his content as bytes.
FatBinary(const FatBinary &)=delete
friend std::ostream & operator<<(std::ostream &os, const FatBinary &fatbinary)
std::unique_ptr< Binary > take(size_t index)
Extract a MachO::Binary object. Gives ownership to the caller, and remove it from this FatBinary obje...
const Binary * at(size_t index) const
const Binary * back() const
Binary * operator[](size_t index)
Definition FatBinary.hpp:100
it_binaries begin()
Definition FatBinary.hpp:68
it_const_binaries begin() const
Definition FatBinary.hpp:71
const Binary * front() const
void write(const std::string &filename)
Reconstruct the Fat binary object and write it in filename
FatBinary & operator=(const FatBinary &)=delete
it_const_binaries end() const
Definition FatBinary.hpp:79
Binary * at(size_t index)
Get a pointer to the MachO::Binary specified by the index. It returns a nullptr if the binary does no...
size_t size() const
Number of MachO::Binary wrapped by this object.
Definition FatBinary.hpp:59
const Binary * operator[](size_t index) const
Definition FatBinary.hpp:103
void release_all_binaries()
The main interface to parse a Mach-O binary.
Definition MachO/Parser.hpp:42
Main interface to parse an executable regardless of its format.
Definition Abstract/Parser.hpp:30
ref_iterator end() const
Definition iterators.hpp:193
Namespace related to the LIEF's Mach-O module.
Definition Abstract/Header.hpp:36
LIEF namespace.
Definition Abstract/Binary.hpp:36
#define LIEF_API
Definition visibility.h:41
#define LIEF_LOCAL
Definition visibility.h:42