diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/reader/pe_read_coff_header.c | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/src/reader/pe_read_coff_header.c b/src/reader/pe_read_coff_header.c index 24d47ba..b6e125f 100644 --- a/src/reader/pe_read_coff_header.c +++ b/src/reader/pe_read_coff_header.c @@ -16,28 +16,20 @@ int pe_read_coff_header(const struct pe_coff_file_hdr * p, struct pe_meta_coff_f || p->signature[2] || p->signature[3]) return PERK_ERR_BAD_COFF_HEADER; - if (PERK_LITTLE_ENDIAN) { + m->signature[0] = p->signature[0]; + m->signature[1] = p->signature[1]; + m->signature[2] = p->signature[2]; + m->signature[3] = p->signature[3]; - memcpy(m,p,sizeof(*p)); + m->machine = pe_read_short(p->machine); + m->num_of_sections = pe_read_short(p->num_of_sections); - } else { + m->time_date_stamp = pe_read_long(p->time_date_stamp); + m->ptr_to_sym_tbl = pe_read_long(p->ptr_to_sym_tbl); + m->num_of_syms = pe_read_long(p->num_of_syms); - m->signature[0] = p->signature[0]; - m->signature[1] = p->signature[1]; - m->signature[2] = p->signature[2]; - m->signature[3] = p->signature[3]; - - m->machine = pe_read_short(p->machine); - m->num_of_sections = pe_read_short(p->num_of_sections); - - m->time_date_stamp = pe_read_long(p->time_date_stamp); - m->ptr_to_sym_tbl = pe_read_long(p->ptr_to_sym_tbl); - m->num_of_syms = pe_read_long(p->num_of_syms); - - m->size_of_opt_hdr = pe_read_short(p->size_of_opt_hdr); - m->characteristics = pe_read_short(p->characteristics); - - } + m->size_of_opt_hdr = pe_read_short(p->size_of_opt_hdr); + m->characteristics = pe_read_short(p->characteristics); return 0; } |