fix: 修复一个解析dos_magic时只读取一个字节的bug

This commit is contained in:
381848900@qq.com 2024-12-19 14:43:23 +08:00
parent ba627058f0
commit 0bbe0c4210

View File

@ -75,7 +75,9 @@ impl AsRef<[u8]> for MemoryPE{
pub fn parse_pe_from_memory(buf: *const u8) -> Result<MemoryPE, PEParseError> {
// 1. 检查是否为PE文件
// 取出头两个字节
let dos_magic = unsafe { *buf as u16 };
let dos_magic = unsafe {
*(buf as *const u16)
};
if dos_magic != 0x5A4D { // 小尾
return Err(PEParseError::InvalidDOSMagic);
}
@ -103,7 +105,9 @@ pub fn parse_pe_from_memory(buf: *const u8) -> Result<MemoryPE, PEParseError> {
pub fn parse_pe_from_memory_mut(buf: *mut u8) -> Result<MemoryPEMut, PEParseError> {
// 1. 检查是否为PE文件
// 取出头两个字节
let dos_magic = unsafe { *buf as u16 };
let dos_magic = unsafe {
*(buf as *const u16)
};
if dos_magic != 0x5A4D { // 小尾
return Err(PEParseError::InvalidDOSMagic);
}