| ... | ... | @@ -197,7 +197,11 @@ pub const Coff = struct { |
| 197 | 197 | const opt_header_pos = try self.in_file.getPos(); |
| 198 | 198 | |
| 199 | 199 | self.pe_header.magic = try in.readIntLittle(u16); |
| 200 | | // All we care about is the image base value and PDB info |
| 200 | try self.in_file.seekTo(opt_header_pos + 16); |
| 201 | self.pe_header.entry_addr = try in.readIntLittle(u32); |
| 202 | try self.in_file.seekTo(opt_header_pos + 20); |
| 203 | self.pe_header.code_base = try in.readIntLittle(u32); |
| 204 | |
| 201 | 205 | // The header structure is different for 32 or 64 bit |
| 202 | 206 | var num_rva_pos: u64 = undefined; |
| 203 | 207 | if (self.pe_header.magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC) { |
| ... | ... | @@ -374,6 +378,8 @@ const OptionalHeader = struct { |
| 374 | 378 | |
| 375 | 379 | magic: u16, |
| 376 | 380 | data_directory: [IMAGE_NUMBEROF_DIRECTORY_ENTRIES]DataDirectory, |
| 381 | entry_addr: u32, |
| 382 | code_base: u32, |
| 377 | 383 | image_base: u64, |
| 378 | 384 | }; |
| 379 | 385 | |