From 989abab0532a42433941b305df9db1028a833481 Mon Sep 17 00:00:00 2001 From: asahi <381848900@qq.com> Date: Fri, 27 Dec 2024 01:07:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AF=B9=E6=8C=87?= =?UTF-8?q?=E9=92=88=E7=9A=84=E6=93=8D=E4=BD=9C,=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E6=8C=87=E9=92=88.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bin/main.rs | 4 +- src/errors.rs | 7 +++ src/lib.rs | 156 ++++++++++++++++++++++++++++++++++++---------- tests/Test.exe | Bin 1024 -> 0 bytes tests/Testx32.exe | Bin 0 -> 156160 bytes tests/Testx64.exe | Bin 0 -> 179200 bytes 6 files changed, 132 insertions(+), 35 deletions(-) delete mode 100644 tests/Test.exe create mode 100644 tests/Testx32.exe create mode 100644 tests/Testx64.exe diff --git a/src/bin/main.rs b/src/bin/main.rs index 885cf5a..6778e54 100644 --- a/src/bin/main.rs +++ b/src/bin/main.rs @@ -1,10 +1,10 @@ use loadpe_rs::load_exe; #[cfg(target_arch = "x86_64")] -const EXE_PATH: &str = r#"E:\work\逆向工程学习\PE学习\HelloWorld.exe"#; +const EXE_PATH: &str = r#"E:\work\rust\loadpe-rs\tests\Testx64.exe"#; #[cfg(target_arch = "x86")] -const EXE_PATH: &str = r#"E:\work\rust\loadpe-rs\tests\Test.exe"#; +const EXE_PATH: &str = r#"E:\work\rust\loadpe-rs\tests\Testx32.exe"#; fn main() { match load_exe(EXE_PATH, None) { diff --git a/src/errors.rs b/src/errors.rs index 8d7abee..9730505 100644 --- a/src/errors.rs +++ b/src/errors.rs @@ -1,3 +1,5 @@ +use std::alloc::LayoutError; + use thiserror::Error; use object::Error as ObjectError; use windows::core::Error as WindowsError; @@ -20,4 +22,9 @@ pub enum LoadPEError { LoadLibraryError(#[from] WindowsError), #[error("GetProcAddress错误!, {0}")] GetProcAddressError(String), + #[error("没有重定位表!")] + NoRelocationTable, + #[error(transparent)] + LayoutError(#[from] LayoutError), + } \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index 871a328..d3def0c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,7 +2,7 @@ use core::alloc; use errors::LoadPEError; use object::{ bytes_of, bytes_of_slice, endian, - pe::IMAGE_DIRECTORY_ENTRY_IMPORT, + pe::{IMAGE_DIRECTORY_ENTRY_BASERELOC, IMAGE_DIRECTORY_ENTRY_IMPORT}, read::pe::{self, ImageOptionalHeader, PeFile32, PeFile64}, LittleEndian, Object, ObjectSection, Pod, }; @@ -46,10 +46,14 @@ pub fn load_exe(exe_path: &str, args: Option>) -> Result<(), LoadPEErr // 3. 为镜像分配内存 // 分配的内存,后续需要修改内存属性 // - let buf = unsafe { alloc(Layout::for_value(&image_size)) }; + let layout = Layout::from_size_align(image_size as usize, 1)?; + let buf = unsafe { alloc(layout) }; if buf.is_null() { return Err(LoadPEError::MemoryAllocFailed); } + + dbg!("分配的内存地址: {:?}", buf); + // 进行数据的拷贝。 { // 拷贝整个头部 @@ -91,12 +95,17 @@ pub fn load_exe(exe_path: &str, args: Option>) -> Result<(), LoadPEErr // 从data[pointer_to_raw_data..pointer_to_raw_data + size_of_raw_data]中拷贝数据到buf[va..va + size_of_raw_data] let section_data = &data [pointer_to_raw_data as usize..(pointer_to_raw_data + size_of_raw_data) as usize]; + + dbg!( + "拷贝节区数据: va: {:?}, size_of_raw_data: {:?}, pointer_to_raw_data: {:?}, section_data.len: {:?}", + va, size_of_raw_data, pointer_to_raw_data, section_data.len() + ); + unsafe { - std::ptr::copy_nonoverlapping( - section_data.as_ptr(), - buf.add(va as usize), - size_of_raw_data as usize, - ); + let dst = (buf as usize + va as usize) as *mut u8; + dbg!("dst: {:p}", dst); + + std::ptr::copy(section_data.as_ptr(), dst, size_of_raw_data as usize); }; } // 修复IAT表 @@ -110,18 +119,17 @@ pub fn load_exe(exe_path: &str, args: Option>) -> Result<(), LoadPEErr let mut import_table_index = 0; loop { let descriptor = unsafe { - &*(buf.add(base_import_table_rva as usize) + &*((buf as usize + + base_import_table_rva as usize + + import_table_index + * std::mem::size_of::()) as *const object::pe::ImageImportDescriptor) - .add(import_table_index) }; if descriptor.original_first_thunk.get(LittleEndian) == 0 { break; } let module_name_rva = descriptor.name.get(LittleEndian); - let p_module_name = unsafe { - // buf[module_name_rva..]中读取一个c风格字符串 - buf.add(module_name_rva as usize) as *const u8 - }; + let p_module_name = (buf as usize + module_name_rva as usize) as *const u8; // 使用LoadLibraryA加载模块 let h_module = unsafe { @@ -151,13 +159,17 @@ pub fn load_exe(exe_path: &str, args: Option>) -> Result<(), LoadPEErr // 1. 从文件的数据中取出一个ImageThunkData let origin_thunk_data = unsafe { #[cfg(target_arch = "x86")] - let thunk_data = &*(buf.add(base_original_first_thunk_va as usize) - as *const object::pe::ImageThunkData32) - .add(index); + let thunk_data = &*((buf as usize + + base_original_first_thunk_va as usize + + index * std::mem::size_of::()) + as *const object::pe::ImageThunkData32); + #[cfg(target_arch = "x86_64")] - let thunk_data = &*(buf.add(base_original_first_thunk_va as usize) - as *const object::pe::ImageThunkData64) - .add(index); + let thunk_data = &*((buf as usize + + base_original_first_thunk_va as usize + + index * std::mem::size_of::()) + as *const object::pe::ImageThunkData64); + thunk_data }; // 2. 判断是否是最后一个ImageThunkData @@ -190,7 +202,7 @@ pub fn load_exe(exe_path: &str, args: Option>) -> Result<(), LoadPEErr // 否则是名称表的RVA let name_table_rva = origin_thunk_data_value; let p_function_name = - unsafe { buf.add(name_table_rva as usize + 2) as *const u8 }; + (buf as usize + name_table_rva as usize + 2) as *const u8; // 构造一个PSTR let p_function_name = PCSTR(p_function_name); // 使用GetProcAddress获取函数地址 @@ -206,8 +218,11 @@ pub fn load_exe(exe_path: &str, args: Option>) -> Result<(), LoadPEErr } // 修复IAT表 // 需要获取到IAT表的地址 - let iat_address = - unsafe { buf.add(base_import_address_table_va as usize + 4 * index) }; + let iat_address = (buf as usize + + base_import_address_table_va as usize + + std::mem::size_of::() * index) + as *mut u8; + // 修复IAT表 // 将函数地址写入IAT表 如果是x86_64,需要写入8字节 // 如果是x86,需要写入4字节 @@ -223,26 +238,101 @@ pub fn load_exe(exe_path: &str, args: Option>) -> Result<(), LoadPEErr } index += 1; } - import_table_index += 1; - + import_table_index += 1; } } // TODO: 修复重定向表 { + // 1. 获取重定向表的数据目录 + let relocation_table_directory = file.data_directory(IMAGE_DIRECTORY_ENTRY_BASERELOC); + if relocation_table_directory.is_none() { + // TODO: 如果没有重定位表,应该要把这个错误返回出去 + return Err(LoadPEError::NoRelocationTable); + } + let base_relocation_table_rva = relocation_table_directory + .unwrap() + .virtual_address + .get(LittleEndian); + let mut relocation_offset = 0; + + loop { + // 读取一个IMAGE_BASE_RELOCATION + let relocation = unsafe { + &*((buf as usize + base_relocation_table_rva as usize + relocation_offset) + as *const object::pe::ImageBaseRelocation) + }; + // 如果SizeOfBlock为0,表示已经到了最后一个IMAGE_BASE_RELOCATION + if relocation.size_of_block.get(LittleEndian) == 0 { + break; + } + // 获取重定位表的VirtualAddress和SizeOfBlock + let virtual_address = relocation.virtual_address.get(LittleEndian); + let size_of_block = relocation.size_of_block.get(LittleEndian); + let base_block = base_relocation_table_rva as usize + relocation_offset + 8; + let block_num = (size_of_block - 8) / 2; + for i in 0..block_num { + // 读取一个TypeOffset + let type_offset = unsafe { + &*((buf as usize + + base_block as usize + + i as usize * std::mem::size_of::()) + as *mut u16) + }; + // 高四位 + let r_type = (type_offset >> 12) as u8; + // 剩余12位 + let r_offset = type_offset & 0x0FFF; + // 需要修复的地址偏移 + let offset_va = virtual_address + r_offset as u32; + dbg!( + "r_type: {:?}, r_offset: {:?}, offset_va: {:?}, virtual_address: {:?}", + r_type, + r_offset, + offset_va, + virtual_address + ); + + match r_type { + 0 => { + // 如果r_type是0,表示这个TypeOffset是一个IMAGE_REL_BASED_ABSOLUTE + // 这个时候不需要做任何操作 + } + 3 => { + // 如果r_type是3,表示这个TypeOffset是一个IMAGE_REL_BASED_HIGHLOW + // 这个时候需要修复一个32位的地址 + let p_address = (buf as usize + offset_va as usize) as *mut u32; + let address = unsafe { *p_address }; + let new_address = address + buf as u32; + unsafe { + *p_address = new_address; + } + dbg!("修复一个32位地址: {:?} -> {:?}", address, new_address); + } + 10 => { + // 需要实现64位的重定位 + unimplemented!("未实现的重定位类型: {:?}", r_type); + } + _ => { + // 其他的类型,暂时不支持 + unimplemented!("未实现的重定位类型: {:?}", r_type); + } + } + } + // 计算下一个IMAGE_BASE_RELOCATION的偏移 + relocation_offset += size_of_block as usize; + } } // TODO: 修复TLS表 - { - - } + {} // TODO: 修复资源表 - { - - } + {} // TODO: 修复命令行参数 - { - - } + {} + // TODO: 设置节区属性 + {} + // TODO: 跳转到入口点 + {} } todo!("未实现") diff --git a/tests/Test.exe b/tests/Test.exe deleted file mode 100644 index d2601315ddf9363a8916f4d377af53ad30ed9dab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 zcmeZ`n!v!!z`(!)#Q*;@Fzf)*Am9Kd@e>Dt(tPr}_!zcuo>knz=yO&vBqOs}p`a)~ zy(lqPAvrNGFTX?~DOI7UG*2NjPr=1MSRpq*B~_1?mrDg|bndG1Lz<^0C&KXZD_j$` zzER|3`{T) z1_l)YARB}gKw=IMHc%eqZx{y2faQVWYn2(G+JTxt`alGjhEpIx1|Oi94VXn`0%09i zgY`;MD@tH8Aa{ZM3c^T0fq@|biHnsv1L~(OP}(CkCnsMaJijO>MUlbOFtIq7fgy__ zLsr0nAwvL2WHG$p2O0#VK$aao^Iw$#DEeQO14wp2%>Y@n48#WF2}ojxfNTyVK1dx5 zpt~cH(X}G8B%mliIkmW$!P_;+&(+7+NG~NPhk;=(qc2b}F+J5OzrvBBv^cd0CId5V IlqNO=09jUEaR2}S diff --git a/tests/Testx32.exe b/tests/Testx32.exe new file mode 100644 index 0000000000000000000000000000000000000000..241d9c74bc89b83d27be32e145c6b163436a9a8a GIT binary patch literal 156160 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 E1CKV_6951J literal 0 HcmV?d00001