Struct goblin::pe::PE[][src]

pub struct PE<'a> {
    pub header: Header,
    pub sections: Vec<SectionTable>,
    pub size: usize,
    pub name: Option<&'a str>,
    pub is_lib: bool,
    pub is_64: bool,
    pub entry: usize,
    pub image_base: usize,
    pub export_data: Option<ExportData<'a>>,
    pub import_data: Option<ImportData<'a>>,
    pub exports: Vec<Export<'a>>,
    pub imports: Vec<Import<'a>>,
    pub libraries: Vec<&'a str>,
    pub debug_data: Option<DebugData<'a>>,
    pub exception_data: Option<ExceptionData<'a>>,
}
[]

An analyzed PE32/PE32+ binary

Fields

header: Header
[]

The PE header

sections: Vec<SectionTable>
[]

A list of the sections in this PE binary

size: usize
[]

The size of the binary

name: Option<&'a str>
[]

The name of this dll, if it has one

is_lib: bool
[]

Whether this is a dll or not

is_64: bool
[]

Whether the binary is 64-bit (PE32+)

entry: usize
[]

the entry point of the binary

image_base: usize
[]

The binary’s RVA, or image base - useful for computing virtual addreses

export_data: Option<ExportData<'a>>
[]

Data about any exported symbols in this binary (e.g., if it’s a dll)

import_data: Option<ImportData<'a>>
[]

Data for any imported symbols, and from which dll, etc., in this binary

exports: Vec<Export<'a>>
[]

The list of exported symbols in this binary, contains synthetic information for easier analysis

imports: Vec<Import<'a>>
[]

The list symbols imported by this binary from other dlls

libraries: Vec<&'a str>
[]

The list of libraries which this binary imports symbols from

debug_data: Option<DebugData<'a>>
[]

Debug information, if any, contained in the PE header

exception_data: Option<ExceptionData<'a>>
[]

Exception handling and stack unwind information, if any, contained in the PE header

Implementations

impl<'a> PE<'a>[src][]

pub fn parse(bytes: &'a [u8]) -> Result<Self>[src][]

Reads a PE binary from the underlying bytes

pub fn parse_with_opts(bytes: &'a [u8], opts: &ParseOptions) -> Result<Self>[src][]

Reads a PE binary from the underlying bytes

Trait Implementations

impl<'a> Debug for PE<'a>[src][+]

Auto Trait Implementations

impl<'a> RefUnwindSafe for PE<'a>

impl<'a> Send for PE<'a>

impl<'a> Sync for PE<'a>

impl<'a> Unpin for PE<'a>

impl<'a> UnwindSafe for PE<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src][+]

impl<T> Borrow<T> for T where
    T: ?Sized
[src][+]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src][+]

impl<T> From<T> for T[src][+]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src][+]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src][+]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src][+]

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

The type returned in the event of a conversion error.