summaryrefslogtreecommitdiffhomepage
path: root/src/reader
diff options
context:
space:
mode:
Diffstat (limited to 'src/reader')
-rw-r--r--src/reader/pe_read_coff_header.c10
-rw-r--r--src/reader/pe_read_coff_symbol.c22
-rw-r--r--src/reader/pe_read_dos_header.c2
-rw-r--r--src/reader/pe_read_export_header.c2
-rw-r--r--src/reader/pe_read_import_header.c2
-rw-r--r--src/reader/pe_read_optional_header.c2
-rw-r--r--src/reader/pe_read_section_header.c2
7 files changed, 25 insertions, 17 deletions
diff --git a/src/reader/pe_read_coff_header.c b/src/reader/pe_read_coff_header.c
index 493d622..0051e46 100644
--- a/src/reader/pe_read_coff_header.c
+++ b/src/reader/pe_read_coff_header.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
+/* Copyright (C) 2015--2025 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
@@ -28,7 +28,9 @@ int pe_read_coff_header(const struct pe_raw_coff_image_hdr * p, struct pe_meta_c
m->cfh_time_date_stamp = pe_read_long(p->cfh_time_date_stamp);
m->cfh_ptr_to_sym_tbl = pe_read_long(p->cfh_ptr_to_sym_tbl);
- m->cfh_num_of_syms = pe_read_long(p->cfh_num_of_syms);
+
+ m->cfh_size_of_sym_tbl = pe_read_long(p->cfh_num_of_sym_recs);
+ m->cfh_size_of_sym_tbl *= sizeof(struct pe_raw_coff_symbol);
m->cfh_size_of_opt_hdr = pe_read_short(p->cfh_size_of_opt_hdr);
m->cfh_characteristics = pe_read_short(p->cfh_characteristics);
@@ -99,7 +101,9 @@ int pe_read_object_header(const struct pe_raw_coff_object_hdr * p, struct pe_met
m->cfh_time_date_stamp = pe_read_long(p->cfh_time_date_stamp);
m->cfh_ptr_to_sym_tbl = pe_read_long(p->cfh_ptr_to_sym_tbl);
- m->cfh_num_of_syms = pe_read_long(p->cfh_num_of_syms);
+
+ m->cfh_size_of_sym_tbl = pe_read_long(p->cfh_num_of_sym_recs);
+ m->cfh_size_of_sym_tbl *= sizeof(struct pe_raw_coff_symbol);
m->cfh_size_of_opt_hdr = pe_read_short(p->cfh_size_of_opt_hdr);
m->cfh_characteristics = pe_read_short(p->cfh_characteristics);
diff --git a/src/reader/pe_read_coff_symbol.c b/src/reader/pe_read_coff_symbol.c
index ef72e59..efd226a 100644
--- a/src/reader/pe_read_coff_symbol.c
+++ b/src/reader/pe_read_coff_symbol.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
+/* Copyright (C) 2015--2025 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
@@ -22,35 +22,39 @@ int pe_read_coff_symbol(
char * mark;
unsigned bias = 0;
- m->cs_long_name = 0;
+ m->cs_name = m->cs_name_buf;
m->cs_value = pe_read_long(p->cs_value);
m->cs_section_number = pe_read_short(p->cs_section_number);
m->cs_type = pe_read_short(p->cs_type);
m->cs_storage_class = p->cs_storage_class[0];
- m->cs_num_of_aux_symbols = p->cs_num_of_aux_symbols[0];
+ m->cs_num_of_aux_recs = p->cs_num_of_aux_recs[0];
+ m->cs_aux_recs = 0;
- memset(m->cs_name,0,sizeof(m->cs_name));
+ memset(m->cs_name_buf,0,sizeof(m->cs_name_buf));
+
+ if (m->cs_num_of_aux_recs)
+ m->cs_aux_recs = &p[1].cs_name[0];
if (p->cs_storage_class[0] == PE_IMAGE_SYM_CLASS_FILE)
- if (p->cs_num_of_aux_symbols[0])
+ if (p->cs_num_of_aux_recs[0])
if (!p[1].cs_value[0])
bias = 1;
p += bias;
if (!bias && (p->cs_storage_class[0] == PE_IMAGE_SYM_CLASS_FILE)
- && p->cs_num_of_aux_symbols[0]) {
- memcpy(m->cs_name,p[1].cs_name,sizeof(*p));
+ && p->cs_num_of_aux_recs[0]) {
+ memcpy(m->cs_name_buf,p[1].cs_name,sizeof(*p));
} else if (p->cs_name[0]) {
- memcpy(m->cs_name,p->cs_name,sizeof(p->cs_name));
+ memcpy(m->cs_name_buf,p->cs_name,sizeof(p->cs_name));
} else if (!p->cs_name[1] && !p->cs_name[2] && !p->cs_name[3]) {
mark = (char *)base;
roffset = pe_read_long(&p->cs_name[4]);
if (roffset < coff->cfh_size_of_str_tbl)
- m->cs_long_name = mark + coff->cfh_ptr_to_str_tbl + roffset;
+ m->cs_name = mark + coff->cfh_ptr_to_str_tbl + roffset;
}
return 0;
diff --git a/src/reader/pe_read_dos_header.c b/src/reader/pe_read_dos_header.c
index caf7fa3..081f5aa 100644
--- a/src/reader/pe_read_dos_header.c
+++ b/src/reader/pe_read_dos_header.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
+/* Copyright (C) 2015--2025 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/reader/pe_read_export_header.c b/src/reader/pe_read_export_header.c
index 95971f7..de98d1d 100644
--- a/src/reader/pe_read_export_header.c
+++ b/src/reader/pe_read_export_header.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
+/* Copyright (C) 2015--2025 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/reader/pe_read_import_header.c b/src/reader/pe_read_import_header.c
index a8e3aa3..a41494f 100644
--- a/src/reader/pe_read_import_header.c
+++ b/src/reader/pe_read_import_header.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
+/* Copyright (C) 2015--2025 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/reader/pe_read_optional_header.c b/src/reader/pe_read_optional_header.c
index bc65d23..0c4fa35 100644
--- a/src/reader/pe_read_optional_header.c
+++ b/src/reader/pe_read_optional_header.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
+/* Copyright (C) 2015--2025 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/reader/pe_read_section_header.c b/src/reader/pe_read_section_header.c
index 383539b..4a2c7f5 100644
--- a/src/reader/pe_read_section_header.c
+++ b/src/reader/pe_read_section_header.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
+/* Copyright (C) 2015--2025 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/