diff options
-rw-r--r-- | include/perk/perk.h | 6 | ||||
-rw-r--r-- | include/perk/perk_meta.h | 2 | ||||
-rw-r--r-- | include/perk/perk_structs.h | 6 | ||||
-rw-r--r-- | src/logic/pe_get_image_meta.c | 14 | ||||
-rw-r--r-- | src/reader/pe_read_import_header.c | 4 |
5 files changed, 16 insertions, 16 deletions
diff --git a/include/perk/perk.h b/include/perk/perk.h index 81d396d..8bffb59 100644 --- a/include/perk/perk.h +++ b/include/perk/perk.h @@ -103,12 +103,12 @@ struct pe_image_meta { union pe_raw_opt_hdr * aopt; struct pe_raw_sec_hdr * asectbl; struct pe_raw_export_hdr * aedata; + struct pe_raw_import_hdr * aidata; struct pe_meta_export_hdr edata; struct pe_meta_sec_hdr * hedata; struct pe_meta_import_hdr * idata; - struct pe_import_hdr * aidata; struct pe_meta_sec_hdr * hidata; }; @@ -201,12 +201,12 @@ perk_api int pe_read_coff_header (const struct pe_raw_coff_file_hdr *, struct p perk_api int pe_read_optional_header (const union pe_raw_opt_hdr *, struct pe_meta_opt_hdr *); perk_api int pe_read_section_header (const struct pe_raw_sec_hdr *, struct pe_meta_sec_hdr *); perk_api int pe_read_export_header (const struct pe_raw_export_hdr *, struct pe_meta_export_hdr *); -perk_api int pe_read_import_header (const struct pe_import_hdr *, struct pe_meta_import_hdr *); +perk_api int pe_read_import_header (const struct pe_raw_import_hdr *, struct pe_meta_import_hdr *); perk_api int pe_read_coff_symbol (const struct pe_coff_symbol *, struct pe_meta_coff_symbol *, const struct pe_meta_coff_file_hdr *, void * base); -perk_api int pe_read_import_lookup (const union pe_import_lookup *, struct pe_meta_import_lookup *, +perk_api int pe_read_import_lookup (const union pe_raw_import_lookup *, struct pe_meta_import_lookup *, uint32_t magic); #ifdef __cplusplus diff --git a/include/perk/perk_meta.h b/include/perk/perk_meta.h index ea55b51..b3b5411 100644 --- a/include/perk/perk_meta.h +++ b/include/perk/perk_meta.h @@ -244,7 +244,7 @@ struct pe_meta_import_hdr { uint32_t count; char * name; struct pe_meta_import_lookup * items; - union pe_import_lookup * aitems; + union pe_raw_import_lookup * aitems; }; diff --git a/include/perk/perk_structs.h b/include/perk/perk_structs.h index 1eaf8a7..7113409 100644 --- a/include/perk/perk_structs.h +++ b/include/perk/perk_structs.h @@ -264,7 +264,7 @@ union pe_raw_export_addr_tbl { }; -union pe_import_lookup { +union pe_raw_import_lookup { unsigned char import_lookup_entry_64 [0x08]; /* 0x00 */ unsigned char import_lookup_entry_32 [0x04]; /* 0x00 */ unsigned char hint_name_tbl_rva [0x04]; /* 0x00 */ @@ -272,7 +272,7 @@ union pe_import_lookup { }; -struct pe_import_hdr { +struct pe_raw_import_hdr { unsigned char import_lookup_tbl_rva [0x04]; /* 0x00 */ unsigned char time_date_stamp [0x04]; /* 0x04 */ unsigned char forwarder_chain [0x04]; /* 0x08 */ @@ -281,7 +281,7 @@ struct pe_import_hdr { }; -struct pe_hint_name_entry { +struct pe_raw_hint_name_entry { unsigned char hint [0x02]; /* 0x00 */ unsigned char name [0x02]; /* 0x02 */ }; diff --git a/src/logic/pe_get_image_meta.c b/src/logic/pe_get_image_meta.c index 0a8de47..20ab387 100644 --- a/src/logic/pe_get_image_meta.c +++ b/src/logic/pe_get_image_meta.c @@ -242,8 +242,8 @@ int pe_get_image_meta( } /* .idata */ - struct pe_import_hdr * pidata; - union pe_import_lookup * pitem; + struct pe_raw_import_hdr * pidata; + union pe_raw_import_lookup * pitem; i = pe_get_named_section_index(m,".idata"); s = pe_get_block_section_index(m,&m->opt.dirs.import_tbl); @@ -254,11 +254,11 @@ int pe_get_image_meta( if (s >= 0) { m->hidata = &m->sectbl[s]; - m->aidata = (struct pe_import_hdr *)(base + m->sectbl[s].ptr_to_raw_data + m->aidata = (struct pe_raw_import_hdr *)(base + m->sectbl[s].ptr_to_raw_data + m->opt.dirs.import_tbl.rva - m->sectbl[s].virtual_addr); } else if (i >= 0) { m->hidata = &m->sectbl[i]; - m->aidata = (struct pe_import_hdr *)(base + m->sectbl[i].ptr_to_raw_data); + m->aidata = (struct pe_raw_import_hdr *)(base + m->sectbl[i].ptr_to_raw_data); } if (m->aidata) { @@ -278,7 +278,7 @@ int pe_get_image_meta( + m->idata[i].name_rva - m->hidata->virtual_addr; if (m->idata[i].import_lookup_tbl_rva) - m->idata[i].aitems = (union pe_import_lookup *)(base + m->hidata->ptr_to_raw_data + m->idata[i].aitems = (union pe_raw_import_lookup *)(base + m->hidata->ptr_to_raw_data + m->idata[i].import_lookup_tbl_rva - m->hidata->virtual_addr); /* items */ @@ -316,8 +316,8 @@ int pe_get_image_meta( } if (!m->idata[i].items[j].flags) { - struct pe_hint_name_entry * pentry = - (struct pe_hint_name_entry *)(base + m->hidata->ptr_to_raw_data + struct pe_raw_hint_name_entry * pentry = + (struct pe_raw_hint_name_entry *)(base + m->hidata->ptr_to_raw_data + m->idata[i].items[j].u.hint_name_tbl_rva - m->hidata->virtual_addr); m->idata[i].items[j].name = (char *)pentry->name; diff --git a/src/reader/pe_read_import_header.c b/src/reader/pe_read_import_header.c index e656185..624313b 100644 --- a/src/reader/pe_read_import_header.c +++ b/src/reader/pe_read_import_header.c @@ -10,7 +10,7 @@ #include "perk_endian_impl.h" #include "perk_reader_impl.h" -int pe_read_import_header(const struct pe_import_hdr * p, struct pe_meta_import_hdr * m) +int pe_read_import_header(const struct pe_raw_import_hdr * p, struct pe_meta_import_hdr * m) { m->import_lookup_tbl_rva = pe_read_long(p->import_lookup_tbl_rva); m->time_date_stamp = pe_read_long(p->time_date_stamp); @@ -25,7 +25,7 @@ int pe_read_import_header(const struct pe_import_hdr * p, struct pe_meta_import_ } int pe_read_import_lookup( - const union pe_import_lookup * p, + const union pe_raw_import_lookup * p, struct pe_meta_import_lookup * m, uint32_t magic) { |