66 lines
1.5 KiB
Rust
66 lines
1.5 KiB
Rust
#[repr(C)]
|
|
pub struct MZHeader {
|
|
pub magic: u16,
|
|
pub stuff: [u16; 15 + 4 + 10],
|
|
pub lfanew: u32,
|
|
}
|
|
|
|
#[repr(C)]
|
|
pub struct PeHeader {
|
|
pub magic: u32,
|
|
pub machine: u16,
|
|
pub num_sections: u16,
|
|
pub time_date_stamp: u32,
|
|
pub sym_tab_ptr: u32,
|
|
pub num_symbols: u32,
|
|
pub opt_header_size: u16,
|
|
pub characteristics: u16,
|
|
}
|
|
|
|
#[repr(C)]
|
|
pub struct OptHeader64 {
|
|
pub magic: u16,
|
|
pub major_linker_ver: u8,
|
|
pub minor_linker_ver: u8,
|
|
pub code_size: u32,
|
|
pub init_data_size: u32,
|
|
pub uninit_data_size: u32,
|
|
pub entry_addr: u32,
|
|
pub code_base: u32,
|
|
pub image_base: u64,
|
|
pub section_align: u32,
|
|
pub file_align: u32,
|
|
pub major_os_ver: u16,
|
|
pub minor_os_ver: u16,
|
|
pub major_image_ver: u16,
|
|
pub minor_image_ver: u16,
|
|
pub major_subsystem_ver: u16,
|
|
pub minor_subsystem_ver: u16,
|
|
pub win32_ver: u32,
|
|
pub image_size: u32,
|
|
pub headers_size: u32,
|
|
pub checksum: u32,
|
|
pub subsystem: u16,
|
|
pub dll_characteristics: u16,
|
|
pub stack_reserve_size: u64,
|
|
pub stack_commit_size: u64,
|
|
pub heap_reserve_size: u64,
|
|
pub heap_commit_size: u64,
|
|
pub loader_flags: u32,
|
|
pub num_of_rva_and_sizes: u32,
|
|
}
|
|
|
|
#[repr(C)]
|
|
pub struct Section {
|
|
pub name: [u8; 8],
|
|
pub virtual_size: u32,
|
|
pub virtual_addr: u32,
|
|
pub raw_data_size: u32,
|
|
pub raw_data_ptr: u32,
|
|
pub reloc_ptr: u32,
|
|
pub line_num_ptr: u32,
|
|
pub num_relocs: u16,
|
|
pub num_line_nums: u16,
|
|
pub characteristics: u32,
|
|
}
|