diff --git a/src-tauri/src/app_state.rs b/src-tauri/src/app_state.rs index 170ab60..bee9d17 100644 --- a/src-tauri/src/app_state.rs +++ b/src-tauri/src/app_state.rs @@ -215,7 +215,7 @@ impl AppState { rw_mmap[new_section_header_offset..new_section_header_offset + 8] .copy_from_slice(§ion_name_bytes); // 写入节的VA - // TODO: 新节的VA应该是最后一个节的VA + section_size对齐后的大小 + // TODO: 新节的VA应该是最后一个节的VA + 最后一个节的SizeOfRawData对齐后的大小 let last_section_header_offset = section_table_offset + 40 * (number_of_sections - 1) as usize; let last_section_va = u32::from_le_bytes( @@ -223,8 +223,16 @@ impl AppState { .try_into() .unwrap(), ); - // 对齐后的VA, 对齐方式(last_section_va + section_size) 和section_alignment进行对齐 - let aligned_va = (last_section_va + section_size as u32 + section_alignment - 1) + let last_sction_size = u32::from_le_bytes( + rw_mmap[last_section_header_offset + 16..last_section_header_offset + 20] + .try_into() + .unwrap(), + ); + let last_section_alignment_size = (last_sction_size + section_alignment - 1) + & !(section_alignment - 1); + + // 对齐后的VA, 对齐方式(last_section_va ) 和section_alignment进行对齐 + let aligned_va = ((last_section_va + last_section_alignment_size) + section_alignment - 1) & !(section_alignment - 1); rw_mmap[new_section_header_offset + 12..new_section_header_offset + 16] diff --git a/src/components/FileHeader/FileHeader.tsx b/src/components/FileHeader/FileHeader.tsx index 7396c8b..18f1642 100644 --- a/src/components/FileHeader/FileHeader.tsx +++ b/src/components/FileHeader/FileHeader.tsx @@ -260,7 +260,7 @@ export default function FileHeader() { return ( ); diff --git a/src/components/NTHeader/NTHeader.tsx b/src/components/NTHeader/NTHeader.tsx index e7b4f32..849f6b1 100644 --- a/src/components/NTHeader/NTHeader.tsx +++ b/src/components/NTHeader/NTHeader.tsx @@ -57,7 +57,7 @@ export default function NTHeader() { return ( diff --git a/src/components/OptionalHeader/OptionalHeader.tsx b/src/components/OptionalHeader/OptionalHeader.tsx index 5da07e1..8de07a9 100644 --- a/src/components/OptionalHeader/OptionalHeader.tsx +++ b/src/components/OptionalHeader/OptionalHeader.tsx @@ -530,7 +530,7 @@ export default function OptionalHeader() { return ( );