Files
loadpe-rs/src/errors.rs
T
2024-12-27 12:04:51 +08:00

31 lines
1016 B
Rust

use std::alloc::LayoutError;
use thiserror::Error;
use object::Error as ObjectError;
use windows::core::Error as WindowsError;
#[derive(Error, Debug)]
pub enum LoadPEError {
#[error("文件不存在: {0}")]
FileNotFound(String),
#[error("文件读取失败: {0}")]
FileReadError(#[from] std::io::Error),
#[error("文件解析失败: {0}")]
ParseError(#[from] ObjectError),
#[error("内存分配失败")]
MemoryAllocFailed,
#[error("可执行程序没有包含导入表!")]
ExecutableWithoutImportTable,
#[error("读取一个C风格字符串错误, {0}")]
ReadCStringError(#[from] std::str::Utf8Error),
#[error("LoadLibraryA错误!, {0}")]
LoadLibraryError(#[from] WindowsError),
#[error("GetProcAddress错误!, {0}")]
GetProcAddressError(String),
#[error("没有重定位表!")]
NoRelocationTable,
#[error(transparent)]
LayoutError(#[from] LayoutError),
#[error("更改内存属性失败!")]
ChangeMemoryProtectFailed,
}