PeWriter

Trait PeWriter 

Source
pub trait PeWriter<W: Write + Seek> {
Show 13 methods // Required method fn get_writer(&mut self) -> &mut W; // Provided methods fn stream_position(&mut self) -> Result<u64, GaiaError> { ... } fn write_program(&mut self, program: &PeProgram) -> Result<(), GaiaError> { ... } fn write_dos_header( &mut self, dos_header: &DosHeader, ) -> Result<(), GaiaError> { ... } fn write_dos_stub(&mut self) -> Result<(), GaiaError> { ... } fn write_nt_header(&mut self, nt_header: &NtHeader) -> Result<(), GaiaError> { ... } fn write_coff_header( &mut self, coff_header: &CoffHeader, ) -> Result<(), GaiaError> { ... } fn write_optional_header( &mut self, optional_header: &OptionalHeader, ) -> Result<(), GaiaError> { ... } fn write_data_directory( &mut self, data_dir: &DataDirectory, ) -> Result<(), GaiaError> { ... } fn write_section_header( &mut self, section: &PeSection, ) -> Result<(), GaiaError> { ... } fn pad_to_offset(&mut self, target_offset: u64) -> Result<(), GaiaError> { ... } fn align_to_boundary(&mut self, alignment: u32) -> Result<(), GaiaError> { ... } fn write_import_table( &mut self, imports: &ImportTable, sections: &[PeSection], pointer_size: usize, ) -> Result<(), GaiaError> { ... }
}
Expand description

PE 文件写入器的通用 trait

Required Methods§

Source

fn get_writer(&mut self) -> &mut W

获取写入器的可变引用

Provided Methods§

Source

fn stream_position(&mut self) -> Result<u64, GaiaError>

获取当前流位置

Source

fn write_program(&mut self, program: &PeProgram) -> Result<(), GaiaError>

将 PE 程序写入流(通用实现)

Source

fn write_dos_header(&mut self, dos_header: &DosHeader) -> Result<(), GaiaError>

写入 DOS 头(通用实现)

Source

fn write_dos_stub(&mut self) -> Result<(), GaiaError>

写入 DOS stub(通用实现)

Source

fn write_nt_header(&mut self, nt_header: &NtHeader) -> Result<(), GaiaError>

写入 NT 头(通用实现)

Source

fn write_coff_header( &mut self, coff_header: &CoffHeader, ) -> Result<(), GaiaError>

写入 COFF 头(通用实现)

Source

fn write_optional_header( &mut self, optional_header: &OptionalHeader, ) -> Result<(), GaiaError>

写入可选头(通用实现)

Source

fn write_data_directory( &mut self, data_dir: &DataDirectory, ) -> Result<(), GaiaError>

写入数据目录(通用实现)

Source

fn write_section_header(&mut self, section: &PeSection) -> Result<(), GaiaError>

写入节头(通用实现)

Source

fn pad_to_offset(&mut self, target_offset: u64) -> Result<(), GaiaError>

填充到指定偏移(通用实现)

Source

fn align_to_boundary(&mut self, alignment: u32) -> Result<(), GaiaError>

对齐到边界(通用实现)

Source

fn write_import_table( &mut self, imports: &ImportTable, sections: &[PeSection], pointer_size: usize, ) -> Result<(), GaiaError>

写入导入表(通用实现)

Implementors§

Source§

impl<W: Write + Seek> PeWriter<W> for DllWriter<W>

Source§

impl<W: Write + Seek> PeWriter<W> for ExeWriter<W>