From d1e52dbb6e080d5ee8456ed686f5d4026370c7b4 Mon Sep 17 00:00:00 2001 From: midipix Date: Thu, 1 Dec 2016 08:13:48 -0500 Subject: struct pe_{raw|meta}_export_hdr: member name normalization. --- src/logic/pe_get_image_meta.c | 10 +++++----- src/output/pe_output_export_symbols.c | 4 ++-- src/reader/pe_read_export_header.c | 22 +++++++++++----------- 3 files changed, 18 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/logic/pe_get_image_meta.c b/src/logic/pe_get_image_meta.c index a3f9219..9353ac4 100644 --- a/src/logic/pe_get_image_meta.c +++ b/src/logic/pe_get_image_meta.c @@ -113,9 +113,9 @@ int pe_get_expsym_by_name( unsigned i; offset = m->hedata->sh_virtual_addr - m->hedata->sh_ptr_to_raw_data; - symrva = (uint32_t *)((uintptr_t)m->image.addr + (m->edata.name_ptr_rva - offset)); + symrva = (uint32_t *)((uintptr_t)m->image.addr + (m->edata.eh_name_ptr_rva - offset)); - for (i=0; iedata.num_of_name_ptrs; i++) { + for (i=0; iedata.eh_num_of_name_ptrs; i++) { sym = (const char *)m->image.addr + symrva[i] - offset; if (!(strcmp(sym,name))) { @@ -142,12 +142,12 @@ int pe_get_expsym_by_index( uint32_t * symrva; uintptr_t symaddr; - if (index >= m->edata.num_of_name_ptrs) + if (index >= m->edata.eh_num_of_name_ptrs) return -1; if (expsym) { offset = m->hedata->sh_virtual_addr - m->hedata->sh_ptr_to_raw_data; - symrva = (uint32_t *)((uintptr_t)m->image.addr + (m->edata.name_ptr_rva - offset)); + symrva = (uint32_t *)((uintptr_t)m->image.addr + (m->edata.eh_name_ptr_rva - offset)); symaddr = (uintptr_t)m->image.addr + symrva[index] - offset; expsym->name = (const char *)symaddr; @@ -238,7 +238,7 @@ int pe_get_image_meta( if (m->aedata) { pe_read_export_header(m->aedata,&m->edata); - m->summary.nexpsyms = m->edata.num_of_name_ptrs; + m->summary.nexpsyms = m->edata.eh_num_of_name_ptrs; } /* .idata */ diff --git a/src/output/pe_output_export_symbols.c b/src/output/pe_output_export_symbols.c index 6d98f75..118f865 100644 --- a/src/output/pe_output_export_symbols.c +++ b/src/output/pe_output_export_symbols.c @@ -53,9 +53,9 @@ int pe_output_export_symbols( mark = m->image.addr; offset = m->hedata->sh_virtual_addr - m->hedata->sh_ptr_to_raw_data; - symrva = (uint32_t *)(mark + m->edata.name_ptr_rva - offset); + symrva = (uint32_t *)(mark + m->edata.eh_name_ptr_rva - offset); - for (i=0; iedata.num_of_name_ptrs; i++) + for (i=0; iedata.eh_num_of_name_ptrs; i++) if ((pretty_export_item( cctx, &mark[symrva[i] - offset], diff --git a/src/reader/pe_read_export_header.c b/src/reader/pe_read_export_header.c index 47dab66..758eb69 100644 --- a/src/reader/pe_read_export_header.c +++ b/src/reader/pe_read_export_header.c @@ -12,19 +12,19 @@ int pe_read_export_header(const struct pe_raw_export_hdr * p, struct pe_meta_export_hdr * m) { - m->export_flags = pe_read_long(p->export_flags); - m->time_date_stamp = pe_read_long(p->time_date_stamp); + m->eh_export_flags = pe_read_long(p->eh_export_flags); + m->eh_time_date_stamp = pe_read_long(p->eh_time_date_stamp); - m->major_ver = pe_read_short(p->major_ver); - m->minor_ver = pe_read_short(p->minor_ver); + m->eh_major_ver = pe_read_short(p->eh_major_ver); + m->eh_minor_ver = pe_read_short(p->eh_minor_ver); - m->name_rva = pe_read_long(p->name_rva); - m->ordinal_base = pe_read_long(p->ordinal_base); - m->addr_tbl_entries = pe_read_long(p->addr_tbl_entries); - m->num_of_name_ptrs = pe_read_long(p->num_of_name_ptrs); - m->export_addr_tbl_rva = pe_read_long(p->export_addr_tbl_rva); - m->name_ptr_rva = pe_read_long(p->name_ptr_rva); - m->ordinal_tbl_rva = pe_read_long(p->ordinal_tbl_rva); + m->eh_name_rva = pe_read_long(p->eh_name_rva); + m->eh_ordinal_base = pe_read_long(p->eh_ordinal_base); + m->eh_addr_tbl_entries = pe_read_long(p->eh_addr_tbl_entries); + m->eh_num_of_name_ptrs = pe_read_long(p->eh_num_of_name_ptrs); + m->eh_export_addr_tbl_rva = pe_read_long(p->eh_export_addr_tbl_rva); + m->eh_name_ptr_rva = pe_read_long(p->eh_name_ptr_rva); + m->eh_ordinal_tbl_rva = pe_read_long(p->eh_ordinal_tbl_rva); return 0; } -- cgit v1.2.3