fix: 修复一个解析dos_magic时只读取一个字节的bug
This commit is contained in:
parent
ba627058f0
commit
0bbe0c4210
@ -75,7 +75,9 @@ impl AsRef<[u8]> for MemoryPE{
|
|||||||
pub fn parse_pe_from_memory(buf: *const u8) -> Result<MemoryPE, PEParseError> {
|
pub fn parse_pe_from_memory(buf: *const u8) -> Result<MemoryPE, PEParseError> {
|
||||||
// 1. 检查是否为PE文件
|
// 1. 检查是否为PE文件
|
||||||
// 取出头两个字节
|
// 取出头两个字节
|
||||||
let dos_magic = unsafe { *buf as u16 };
|
let dos_magic = unsafe {
|
||||||
|
*(buf as *const u16)
|
||||||
|
};
|
||||||
if dos_magic != 0x5A4D { // 小尾
|
if dos_magic != 0x5A4D { // 小尾
|
||||||
return Err(PEParseError::InvalidDOSMagic);
|
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> {
|
pub fn parse_pe_from_memory_mut(buf: *mut u8) -> Result<MemoryPEMut, PEParseError> {
|
||||||
// 1. 检查是否为PE文件
|
// 1. 检查是否为PE文件
|
||||||
// 取出头两个字节
|
// 取出头两个字节
|
||||||
let dos_magic = unsafe { *buf as u16 };
|
let dos_magic = unsafe {
|
||||||
|
*(buf as *const u16)
|
||||||
|
};
|
||||||
if dos_magic != 0x5A4D { // 小尾
|
if dos_magic != 0x5A4D { // 小尾
|
||||||
return Err(PEParseError::InvalidDOSMagic);
|
return Err(PEParseError::InvalidDOSMagic);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user