| ... | @@ -197,7 +197,11 @@ pub const Coff = struct { | ... | @@ -197,7 +197,11 @@ pub const Coff = struct { |
| 197 | const opt_header_pos = try self.in_file.getPos(); | 197 | const opt_header_pos = try self.in_file.getPos(); |
| 198 | | 198 | |
| 199 | self.pe_header.magic = try in.readIntLittle(u16); | 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 | // The header structure is different for 32 or 64 bit | 205 | // The header structure is different for 32 or 64 bit |
| 202 | var num_rva_pos: u64 = undefined; | 206 | var num_rva_pos: u64 = undefined; |
| 203 | if (self.pe_header.magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC) { | 207 | if (self.pe_header.magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC) { |
| ... | @@ -374,6 +378,8 @@ const OptionalHeader = struct { | ... | @@ -374,6 +378,8 @@ const OptionalHeader = struct { |
| 374 | | 378 | |
| 375 | magic: u16, | 379 | magic: u16, |
| 376 | data_directory: [IMAGE_NUMBEROF_DIRECTORY_ENTRIES]DataDirectory, | 380 | data_directory: [IMAGE_NUMBEROF_DIRECTORY_ENTRIES]DataDirectory, |
| | 381 | entry_addr: u32, |
| | 382 | code_base: u32, |
| 377 | image_base: u64, | 383 | image_base: u64, |
| 378 | }; | 384 | }; |
| 379 | | 385 | |