diff --git a/elf.inc b/elf.inc index a155e5b..31e4e12 100644 --- a/elf.inc +++ b/elf.inc @@ -118,6 +118,11 @@ elf_binary_calculate_fields: pop rax mov qword [program_code_section_header.offset], rax + ; + ; above needs to be: + ; + assert elf_binary_headers_length + 0x2a + 0x0e + 0x10 = 0xc0 + mov edi, eax add edi, elf_binary.base_address diff --git a/elf_test.asm b/elf_test.asm index 5102346..52506f9 100644 --- a/elf_test.asm +++ b/elf_test.asm @@ -33,9 +33,19 @@ entry $ mov ecx, program_code.length call elf_binary_calculate_fields + mov edi, 1 + cmp qword [elf_header.start_address], 0x400078 + jne exit + + mov edi, 2 + cmp qword [elf_header.section_header_offset], 0xc0 + jne exit + ; ; exit cleanly ; xor edi, edi + +exit: mov eax, SYS_EXIT syscall