From 0bbe0c42104ff5597cedc5e7a89ef02863ae03b4 Mon Sep 17 00:00:00 2001 From: "381848900@qq.com" Date: Thu, 19 Dec 2024 14:43:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E8=A7=A3=E6=9E=90dos=5Fmagic=E6=97=B6=E5=8F=AA=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E4=B8=80=E4=B8=AA=E5=AD=97=E8=8A=82=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/memory_pe.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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); }