pub struct Segment<'a> { /* private fields */ }
Expand description

Class which represents a LC_SEGMENT/LC_SEGMENT_64 command

Implementations§

§

impl Segment<'_>

pub fn name(&self) -> String

Name of the segment (e.g. __TEXT)

pub fn virtual_address(&self) -> u64

Absolute virtual base address of the segment

pub fn virtual_size(&self) -> u64

Virtual size of the segment

pub fn file_size(&self) -> u64

Size of this segment in the binary file

pub fn file_offset(&self) -> u64

Offset of the data of this segment in the file

pub fn max_protection(&self) -> u32

The maximum of protections for this segment

pub fn init_protection(&self) -> u32

The initial protections of this segment

pub fn numberof_sections(&self) -> u32

The number of sections associated with this segment

pub fn flags(&self) -> u32

Flags associated with this segment

pub fn content(&self) -> &[u8]

The raw content of this segment as a slice of bytes

pub fn sections(&self) -> Sections<'_>

Iterator over the crate::macho::Section owned by this segment

pub fn relocations(&self) -> Relocations<'_>

Return an iterator over the crate::macho::Relocation linked to this segment

For Mach-O executable or library this iterator should be empty as the relocations are managed by the Dyld’s rebase opcodes. On the other hand, for object files (.o) this iterator should not be empty.

Trait Implementations§

§

impl Command for Segment<'_>

§

fn size(&self) -> u32

Size of the command (should be greather than sizeof(load_command))
§

fn offset(&self) -> u64

Offset of the command within the Load Command Table
§

fn command_type(&self) -> LoadCommandTypes

The command’s type
§

fn data(&self) -> &[u8]

The raw command as a slice of bytes
§

impl Debug for Segment<'_>

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for Segment<'a>

§

impl<'a> !Send for Segment<'a>

§

impl<'a> !Sync for Segment<'a>

§

impl<'a> Unpin for Segment<'a>

§

impl<'a> UnwindSafe for Segment<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.