Skip to main content

RelocationBlock

Struct RelocationBlock 

Source
pub struct RelocationBlock<'a> {
    pub rva: u32,
    pub size: u32,
    pub bytes: &'a [u8],
}
Expand description

Represents a PE (Portable Executable) base relocation block.

In the PE format, base relocations are organized into blocks, where each block corresponds to a contiguous range of memory that needs to be relocated. The relocations within a block specify offsets relative to the block’s starting address.

Unlike COFF (Common Object File Format), PE base relocations are separated by blocks. Each block begins with a RelocationBlock structure that provides information about the relocation block, including its starting RVA (Relative Virtual Address) and size in bytes.

Each block ends with an “absolute” relocation entry, which acts as a marker to indicate the end of the block. This entry has no actual relocation effect.

Fields§

§rva: u32

The starting RVA for the relocation block.

§size: u32

The total size of the relocation block, in bytes.

§bytes: &'a [u8]

The bytes of RelocationWord data within this block.

Implementations§

Source§

impl RelocationBlock<'_>

Source

pub fn words(&self) -> RelocationWordIterator<'_>

Returns iterator for RelocationWord

Trait Implementations§

Source§

impl<'a> Clone for RelocationBlock<'a>

Source§

fn clone(&self) -> RelocationBlock<'a>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Copy for RelocationBlock<'a>

Source§

impl<'a> Debug for RelocationBlock<'a>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'a> Default for RelocationBlock<'a>

Source§

fn default() -> RelocationBlock<'a>

Returns the “default value” for a type. Read more
Source§

impl<'a> PartialEq for RelocationBlock<'a>

Source§

fn eq(&self, other: &RelocationBlock<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> StructuralPartialEq for RelocationBlock<'a>

Source§

impl<'a> TryFromCtx<'a, Endian> for RelocationBlock<'a>

Source§

type Error = Error

Source§

fn try_from_ctx( bytes: &'a [u8], ctx: Endian, ) -> Result<(Self, usize), Self::Error>

Auto Trait Implementations§

§

impl<'a> Freeze for RelocationBlock<'a>

§

impl<'a> RefUnwindSafe for RelocationBlock<'a>

§

impl<'a> Send for RelocationBlock<'a>

§

impl<'a> Sync for RelocationBlock<'a>

§

impl<'a> Unpin for RelocationBlock<'a>

§

impl<'a> UnsafeUnpin for RelocationBlock<'a>

§

impl<'a> UnwindSafe for RelocationBlock<'a>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.