diff --git a/src/memory_pe.rs b/src/memory_pe.rs index 64af81f..a5b9bb9 100644 --- a/src/memory_pe.rs +++ b/src/memory_pe.rs @@ -75,7 +75,9 @@ impl AsRef<[u8]> for MemoryPE{ pub fn parse_pe_from_memory(buf: *const u8) -> Result { // 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 { pub fn parse_pe_from_memory_mut(buf: *mut u8) -> Result { // 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); }