16#ifndef LIEF_MACHO_FAT_BINARY_H
17#define LIEF_MACHO_FAT_BINARY_H
22#include "LIEF/types.hpp"
23#include "LIEF/visibility.h"
25#include "LIEF/MachO/enums.hpp"
26#include "LIEF/iterators.hpp"
72 void release_all_binaries();
81 const Binary* at(
size_t index)
const;
84 const Binary* back()
const;
87 const Binary* front()
const;
89 Binary* operator[](
size_t index);
90 const Binary* operator[](
size_t index)
const;
96 std::unique_ptr<Binary>
take(
size_t index);
100 std::unique_ptr<Binary>
take(CPU_TYPES cpu);
104 void write(
const std::string& filename);
107 std::vector<uint8_t>
raw();
109 LIEF_API
friend std::ostream& operator<<(std::ostream& os,
const FatBinary& fatbinary);
Class which represents a MachO binary.
Definition MachO/Binary.hpp:74
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:38
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.
std::unique_ptr< Binary > take(CPU_TYPES 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.
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...
void write(const std::string &filename)
Reconstruct the Fat binary object and write it in filename
std::vector< std::unique_ptr< Binary > > binaries_t
Internal containter used to store Binary objects within a Fat Mach-O.
Definition FatBinary.hpp:47
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.
The main interface to parse a Mach-O binary.
Definition MachO/Parser.hpp:43
Main interface to parse an executable regardless of its format.
Definition Abstract/Parser.hpp:30
Iterator which returns reference on container's values.
Definition iterators.hpp:48
LIEF namespace.
Definition Abstract/Binary.hpp:32