Struct ImageImportDescriptor

Source
#[repr(C)]
pub struct ImageImportDescriptor { pub original_first_thunk: RVA, pub time_date_stamp: u32, pub forwarder_chain: u32, pub name: RVA, pub first_thunk: RVA, }

Fields§

§original_first_thunk: RVA§time_date_stamp: u32§forwarder_chain: u32§name: RVA§first_thunk: RVA

Implementations§

Source§

impl ImageImportDescriptor

Source

pub fn get_original_first_thunk<'data, P: PE>( &self, pe: &'data P, ) -> Result<Vec<Thunk<'data>>, Error>

Get the thunk array pointed to by the original_first_thunk field.

Source

pub fn get_mut_original_first_thunk<'data, P: PE>( &self, pe: &'data mut P, ) -> Result<Vec<ThunkMut<'data>>, Error>

Get the mutable thunk array pointed to by the original_first_thunk field.

Source

pub fn get_name<'data, P: PE>( &self, pe: &'data P, ) -> Result<&'data [CChar], Error>

Get the name of the module represented by this import descriptor entry.

Source

pub fn get_mut_name<'data, P: PE>( &self, pe: &'data mut P, ) -> Result<&'data mut [CChar], Error>

Get the mutable name of the module represented by this import descriptor entry.

Source

pub fn get_first_thunk<'data, P: PE>( &self, pe: &'data P, ) -> Result<Vec<Thunk<'data>>, Error>

Get the first thunk array.

This array typically represents where in memory imports get resolved to.

Source

pub fn get_mut_first_thunk<'data, P: PE>( &self, pe: &'data mut P, ) -> Result<Vec<ThunkMut<'data>>, Error>

Get the mutable first thunk array.

Source

pub fn get_lookup_thunks<'data, P: PE>( &self, pe: &'data P, ) -> Result<Vec<Thunk<'data>>, Error>

Get the thunk array that represents the imports, also known as the “import lookup table.”

This thunk array can either come from the original_first_thunk value or the first_thunk value.

Source

pub fn get_imports<'data, P: PE>( &self, pe: &'data P, ) -> Result<Vec<ImportData<'data>>, Error>

Get the imports represented by this import descriptor.

This resolves the import table and returns a vector of ImportData objects.

Source

pub fn resolve_iat<P: PE>(&self, pe: &mut P) -> Result<(), Error>

Only available for Windows. Resolve the import address table of this import descriptor.

In other words, perform the importation of the functions with LoadLibrary and GetProcAddress and store them in the import address table.

Trait Implementations§

Source§

impl Clone for ImageImportDescriptor

Source§

fn clone(&self) -> ImageImportDescriptor

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ImageImportDescriptor

Source§

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

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

impl PartialEq for ImageImportDescriptor

Source§

fn eq(&self, other: &ImageImportDescriptor) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Castable for ImageImportDescriptor

Source§

impl Copy for ImageImportDescriptor

Source§

impl Eq for ImageImportDescriptor

Source§

impl StructuralPartialEq for ImageImportDescriptor

Auto Trait Implementations§

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> Same for T

Source§

type Output = T

Should always be Self
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.