summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/driver/pe_amain.c2
-rw-r--r--src/driver/pe_driver_ctx.c2
-rw-r--r--src/driver/pe_unit_ctx.c2
-rw-r--r--src/hdrdump/pe_hdrdump_coff_image_hdr.c2
-rw-r--r--src/hdrdump/pe_hdrdump_coff_object_hdr.c2
-rw-r--r--src/hdrdump/pe_hdrdump_coff_opt_hdr.c33
-rw-r--r--src/hdrdump/pe_hdrdump_export_hdr.c2
-rw-r--r--src/hdrdump/pe_hdrdump_image_dos_hdr.c2
-rw-r--r--src/hdrdump/pe_hdrdump_import_tbl.c2
-rw-r--r--src/hdrdump/pe_hdrdump_sec_tbl.c2
-rw-r--r--src/info/pe_get_image_abi.c2
-rw-r--r--src/info/pe_get_image_framework.c2
-rw-r--r--src/info/pe_get_image_subsystem.c2
-rw-r--r--src/info/pe_get_image_subtype.c2
-rw-r--r--src/internal/argv/argv.h113
-rw-r--r--src/internal/perk_endian_impl.h2
-rw-r--r--src/internal/perk_errinfo_impl.c2
-rw-r--r--src/internal/perk_errinfo_impl.h2
-rw-r--r--src/internal/perk_hdrdump_impl.c2
-rw-r--r--src/internal/perk_hdrdump_impl.h2
-rw-r--r--src/internal/perk_reader_impl.h2
-rw-r--r--src/logic/pe_get_image_meta.c2
-rw-r--r--src/logic/pe_map_raw_image.c2
-rw-r--r--src/output/pe_output_error.c2
-rw-r--r--src/output/pe_output_export_symbols.c2
-rw-r--r--src/output/pe_output_idata_libraries.c2
-rw-r--r--src/output/pe_output_image_category.c2
-rw-r--r--src/output/pe_output_image_sections.c2
-rw-r--r--src/output/pe_output_image_strings.c2
-rw-r--r--src/output/pe_output_image_symbols.c2
-rw-r--r--src/output/pe_output_mdso_libraries.c8
-rw-r--r--src/perk.c2
-rw-r--r--src/reader/pe_read_coff_header.c2
-rw-r--r--src/reader/pe_read_coff_symbol.c2
-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
39 files changed, 152 insertions, 74 deletions
diff --git a/src/driver/pe_amain.c b/src/driver/pe_amain.c
index 9fa868a..286e111 100644
--- a/src/driver/pe_amain.c
+++ b/src/driver/pe_amain.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/driver/pe_driver_ctx.c b/src/driver/pe_driver_ctx.c
index bc20b6d..9955548 100644
--- a/src/driver/pe_driver_ctx.c
+++ b/src/driver/pe_driver_ctx.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/driver/pe_unit_ctx.c b/src/driver/pe_unit_ctx.c
index 4692aa2..5333a2d 100644
--- a/src/driver/pe_unit_ctx.c
+++ b/src/driver/pe_unit_ctx.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/hdrdump/pe_hdrdump_coff_image_hdr.c b/src/hdrdump/pe_hdrdump_coff_image_hdr.c
index d5c6e51..3ce0e2c 100644
--- a/src/hdrdump/pe_hdrdump_coff_image_hdr.c
+++ b/src/hdrdump/pe_hdrdump_coff_image_hdr.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/hdrdump/pe_hdrdump_coff_object_hdr.c b/src/hdrdump/pe_hdrdump_coff_object_hdr.c
index b008456..0011a34 100644
--- a/src/hdrdump/pe_hdrdump_coff_object_hdr.c
+++ b/src/hdrdump/pe_hdrdump_coff_object_hdr.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/hdrdump/pe_hdrdump_coff_opt_hdr.c b/src/hdrdump/pe_hdrdump_coff_opt_hdr.c
index fc51738..fbec549 100644
--- a/src/hdrdump/pe_hdrdump_coff_opt_hdr.c
+++ b/src/hdrdump/pe_hdrdump_coff_opt_hdr.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
@@ -23,15 +23,19 @@ static int pe_hdrdump_opt_hdr_32(
const struct pe_driver_ctx * dctx,
const struct pe_image_meta * meta)
{
- uint64_t faddr;
- uint64_t vaddr;
+ void * uaddr;
+ const char * haddr;
+ const char * maddr;
+ uintptr_t faddr;
+ uintptr_t vaddr;
char * ch;
char buf[8192];
- if (!PE_ADDR)
- return 0;
+ uaddr = &meta->r_opt->opt_hdr_32;
+ maddr = meta->r_image.map_addr;
- faddr = (char *)(PE_ADDR) - (char *)meta->r_image.map_addr;
+ haddr = uaddr;
+ faddr = haddr - maddr;
vaddr = meta->m_opt.oh_mem.coh_image_base + faddr;
ch = buf;
@@ -109,15 +113,19 @@ static int pe_hdrdump_opt_hdr_64(
const struct pe_driver_ctx * dctx,
const struct pe_image_meta * meta)
{
- uint64_t faddr;
- uint64_t vaddr;
+ void * uaddr;
+ const char * haddr;
+ const char * maddr;
+ uintptr_t faddr;
+ uintptr_t vaddr;
char * ch;
char buf[8192];
- if (!PE_ADDR)
- return 0;
+ uaddr = PE_ADDR;
+ maddr = meta->r_image.map_addr;
- faddr = (char *)(PE_ADDR) - (char *)meta->r_image.map_addr;
+ haddr = uaddr;
+ faddr = haddr - maddr;
vaddr = meta->m_opt.oh_mem.coh_image_base + faddr;
ch = buf;
@@ -186,6 +194,9 @@ int pe_hdrdump_coff_opt_hdr(
const struct pe_driver_ctx * dctx,
const struct pe_image_meta * meta)
{
+ if (!meta->r_opt)
+ return 0;
+
switch (pe_image_bits(meta)) {
case 32:
return pe_hdrdump_opt_hdr_32(dctx,meta);
diff --git a/src/hdrdump/pe_hdrdump_export_hdr.c b/src/hdrdump/pe_hdrdump_export_hdr.c
index eae87f2..a413097 100644
--- a/src/hdrdump/pe_hdrdump_export_hdr.c
+++ b/src/hdrdump/pe_hdrdump_export_hdr.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/hdrdump/pe_hdrdump_image_dos_hdr.c b/src/hdrdump/pe_hdrdump_image_dos_hdr.c
index 5d6fe77..c290079 100644
--- a/src/hdrdump/pe_hdrdump_image_dos_hdr.c
+++ b/src/hdrdump/pe_hdrdump_image_dos_hdr.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/hdrdump/pe_hdrdump_import_tbl.c b/src/hdrdump/pe_hdrdump_import_tbl.c
index 8874266..f7cdb24 100644
--- a/src/hdrdump/pe_hdrdump_import_tbl.c
+++ b/src/hdrdump/pe_hdrdump_import_tbl.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/hdrdump/pe_hdrdump_sec_tbl.c b/src/hdrdump/pe_hdrdump_sec_tbl.c
index 99e7f58..8379d6d 100644
--- a/src/hdrdump/pe_hdrdump_sec_tbl.c
+++ b/src/hdrdump/pe_hdrdump_sec_tbl.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/info/pe_get_image_abi.c b/src/info/pe_get_image_abi.c
index 68feb8d..0bdcbb8 100644
--- a/src/info/pe_get_image_abi.c
+++ b/src/info/pe_get_image_abi.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/info/pe_get_image_framework.c b/src/info/pe_get_image_framework.c
index 4154612..31b6760 100644
--- a/src/info/pe_get_image_framework.c
+++ b/src/info/pe_get_image_framework.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/info/pe_get_image_subsystem.c b/src/info/pe_get_image_subsystem.c
index 9bd9ea8..ac9655e 100644
--- a/src/info/pe_get_image_subsystem.c
+++ b/src/info/pe_get_image_subsystem.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/info/pe_get_image_subtype.c b/src/info/pe_get_image_subtype.c
index 062535f..4d7ae5d 100644
--- a/src/info/pe_get_image_subtype.c
+++ b/src/info/pe_get_image_subtype.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/internal/argv/argv.h b/src/internal/argv/argv.h
index 416904d..3fc6c44 100644
--- a/src/internal/argv/argv.h
+++ b/src/internal/argv/argv.h
@@ -1,6 +1,6 @@
/****************************************************************************/
/* argv.h: a thread-safe argument vector parser and usage screen generator */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2024 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/****************************************************************************/
@@ -83,6 +83,7 @@ enum argv_error {
ARGV_ERROR_INTERNAL,
ARGV_ERROR_SHORT_OPTION,
ARGV_ERROR_LONG_OPTION,
+ ARGV_ERROR_VENDOR_OPTION,
ARGV_ERROR_OPTARG_NONE,
ARGV_ERROR_OPTARG_REQUIRED,
ARGV_ERROR_OPTARG_PARADIGM,
@@ -398,7 +399,11 @@ static void argv_scan(
fval = ch;
}
} else {
- ferr = ARGV_ERROR_SHORT_OPTION;
+ if ((ch == &parg[0][1]) && (ch[0] == 'W') && ch[1]) {
+ ferr = ARGV_ERROR_VENDOR_OPTION;
+ } else {
+ ferr = ARGV_ERROR_SHORT_OPTION;
+ }
}
} else if (!fnoscan && (fhybrid || is_long_option(ch))) {
@@ -413,49 +418,72 @@ static void argv_scan(
ch = *parg;
}
- if (fhybrid && !(option->flags & ARGV_OPTION_HYBRID_SWITCH))
+ /* now verify the proper setting of option values */
+ if (fhybrid && !(option->flags & ARGV_OPTION_HYBRID_SWITCH)) {
ferr = ARGV_ERROR_HYBRID_NONE;
- else if (!fhybrid && (option->flags & ARGV_OPTION_HYBRID_ONLY))
+
+ } else if (!fhybrid && (option->flags & ARGV_OPTION_HYBRID_ONLY)) {
ferr = ARGV_ERROR_HYBRID_ONLY;
- else if (option->optarg == ARGV_OPTARG_NONE) {
+
+ } else if (option->optarg == ARGV_OPTARG_NONE) {
if (val[0]) {
ferr = ARGV_ERROR_OPTARG_NONE;
ctx->errch = val + 1;
- } else
+ } else {
fval = false;
+ }
+
} else if (val[0] && (option->flags & ARGV_OPTION_HYBRID_JOINED)) {
fval = true;
ch = val;
- } else if (fhybrid && !val[0] && !(option->flags & ARGV_OPTION_HYBRID_SPACE))
- ferr = ARGV_ERROR_HYBRID_SPACE;
- else if (fhybrid && (val[0]=='=') && !(option->flags & ARGV_OPTION_HYBRID_EQUAL))
+
+ } else if (fhybrid && !val[0] && !(option->flags & ARGV_OPTION_HYBRID_SPACE)) {
+ if (option->optarg == ARGV_OPTARG_OPTIONAL) {
+ fval = false;
+
+ } else {
+ ferr = ARGV_ERROR_HYBRID_SPACE;
+ }
+
+ } else if (fhybrid && (val[0]=='=') && !(option->flags & ARGV_OPTION_HYBRID_EQUAL)) {
ferr = ARGV_ERROR_HYBRID_EQUAL;
- else if (fhybrid && (val[0]==',') && !(option->flags & ARGV_OPTION_HYBRID_COMMA))
+
+ } else if (fhybrid && (val[0]==',') && !(option->flags & ARGV_OPTION_HYBRID_COMMA)) {
ferr = ARGV_ERROR_HYBRID_COMMA;
- else if (!fhybrid && (val[0]==','))
+
+ } else if (!fhybrid && (val[0]==',')) {
ferr = ARGV_ERROR_HYBRID_COMMA;
- else if (val[0] && !val[1])
+
+ } else if (val[0] && !val[1]) {
ferr = ARGV_ERROR_OPTARG_REQUIRED;
- else if (val[0] && val[1]) {
+
+ } else if (val[0] && val[1]) {
fval = true;
ch = ++val;
+
} else if (option->optarg == ARGV_OPTARG_REQUIRED) {
- if (!val[0] && !*parg)
+ if (!val[0] && !*parg) {
ferr = ARGV_ERROR_OPTARG_REQUIRED;
- else if (*parg && is_short_option(*parg))
+
+ } else if (*parg && is_short_option(*parg)) {
ferr = ARGV_ERROR_OPTARG_REQUIRED;
- else if (*parg && is_long_option(*parg))
+
+ } else if (*parg && is_long_option(*parg)) {
ferr = ARGV_ERROR_OPTARG_REQUIRED;
- else if (*parg && is_last_option(*parg))
+
+ } else if (*parg && is_last_option(*parg)) {
ferr = ARGV_ERROR_OPTARG_REQUIRED;
- else
+
+ } else {
fval = true;
+ }
} else {
/* ARGV_OPTARG_OPTIONAL */
fval = val[0];
}
- } else
+ } else {
ferr = ARGV_ERROR_LONG_OPTION;
+ }
}
if (ferr == ARGV_ERROR_OK)
@@ -531,7 +559,11 @@ static const char * argv_program_name(const char * program_path)
static void argv_show_error(int fd, struct argv_ctx * ctx)
{
- char opt_short_name[2] = {0,0};
+ const char * src;
+ char * dst;
+ char * cap;
+ char opt_vendor_buf[256];
+ char opt_short_name[2] = {0,0};
if (ctx->erropt && ctx->erropt->short_name)
opt_short_name[0] = ctx->erropt->short_name;
@@ -547,6 +579,27 @@ static void argv_show_error(int fd, struct argv_ctx * ctx)
argv_dprintf(fd,"'--%s' is not a valid long option\n",ctx->errch);
break;
+ case ARGV_ERROR_VENDOR_OPTION:
+ src = ctx->errch;
+ dst = opt_vendor_buf;
+ cap = &opt_vendor_buf[sizeof(opt_vendor_buf)];
+
+ for (; src && *src && dst<cap; ) {
+ if ((*src == '=') || (*src == ',') || (*src == ':')) {
+ src = 0;
+ } else {
+ *dst++ = *src++;
+ }
+ }
+
+ if (dst == cap)
+ dst--;
+
+ *dst = '\0';
+
+ argv_dprintf(fd,"'-%s' is not a valid vendor option\n",opt_vendor_buf);
+ break;
+
case ARGV_ERROR_OPTARG_NONE:
argv_dprintf(fd,"'%s' is not a valid option value for [%s%s%s%s%s] "
"(option values may not be specified)\n",
@@ -563,7 +616,9 @@ static void argv_show_error(int fd, struct argv_ctx * ctx)
opt_short_name[0] ? "-" : "",
opt_short_name,
opt_short_name[0] ? "," : "",
- ctx->erropt->long_name ? "--" : "",
+ ctx->erropt->long_name
+ ? (ctx->erropt->flags & ARGV_OPTION_HYBRID_ONLY) ? "-" : "--"
+ : "",
ctx->erropt->long_name,
ctx->erropt->paradigm ? "one of the following values:" : "a value",
ctx->erropt->paradigm ? "{" : "",
@@ -778,6 +833,7 @@ static void argv_usage_impl(
{
const struct argv_option ** optv;
const struct argv_option * option;
+ int nlong;
bool fshort,flong,fboth;
size_t len,optlen,desclen;
char cache;
@@ -810,7 +866,7 @@ static void argv_usage_impl(
if (header)
argv_dprintf(fd,"%s",header);
- for (optlen=0,optv=options; *optv; optv++) {
+ for (optlen=0,nlong=0,optv=options; *optv; optv++) {
option = *optv;
/* indent + comma */
@@ -829,6 +885,11 @@ static void argv_usage_impl(
/* optlen */
if (len > optlen)
optlen = len;
+
+ /* long (vs. hybrid-only) option? */
+ if (option->long_name)
+ if (!(option->flags & ARGV_OPTION_HYBRID_ONLY))
+ nlong++;
}
if (optlen >= optcap) {
@@ -849,7 +910,7 @@ static void argv_usage_impl(
/* color */
if (fcolor) {
color = (color == ccyan) ? cblue : ccyan;
- argv_dprintf(fd,color);
+ argv_dprintf(fd,color,0);
}
/* description, using either paradigm or argname if applicable */
@@ -861,7 +922,11 @@ static void argv_usage_impl(
/* long/hybrid option prefix (-/--) */
prefix = option->flags & ARGV_OPTION_HYBRID_ONLY
- ? " -" : "--";
+ ? " -" : " --";
+
+ /* avoid extra <stace> when all long opts are hybrid-only */
+ if (nlong == 0)
+ prefix++;
/* option string */
if (fboth && option->short_name && option->long_name)
diff --git a/src/internal/perk_endian_impl.h b/src/internal/perk_endian_impl.h
index a51393d..347e229 100644
--- a/src/internal/perk_endian_impl.h
+++ b/src/internal/perk_endian_impl.h
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/internal/perk_errinfo_impl.c b/src/internal/perk_errinfo_impl.c
index 997b879..22b084e 100644
--- a/src/internal/perk_errinfo_impl.c
+++ b/src/internal/perk_errinfo_impl.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/internal/perk_errinfo_impl.h b/src/internal/perk_errinfo_impl.h
index f583f49..5d195d4 100644
--- a/src/internal/perk_errinfo_impl.h
+++ b/src/internal/perk_errinfo_impl.h
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/internal/perk_hdrdump_impl.c b/src/internal/perk_hdrdump_impl.c
index 13ff786..6bf1867 100644
--- a/src/internal/perk_hdrdump_impl.c
+++ b/src/internal/perk_hdrdump_impl.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/internal/perk_hdrdump_impl.h b/src/internal/perk_hdrdump_impl.h
index 5adb63d..379d427 100644
--- a/src/internal/perk_hdrdump_impl.h
+++ b/src/internal/perk_hdrdump_impl.h
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2018 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/internal/perk_reader_impl.h b/src/internal/perk_reader_impl.h
index 39b0b85..9074716 100644
--- a/src/internal/perk_reader_impl.h
+++ b/src/internal/perk_reader_impl.h
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/logic/pe_get_image_meta.c b/src/logic/pe_get_image_meta.c
index 3285ef4..daf6939 100644
--- a/src/logic/pe_get_image_meta.c
+++ b/src/logic/pe_get_image_meta.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/logic/pe_map_raw_image.c b/src/logic/pe_map_raw_image.c
index 91fc738..03c47c7 100644
--- a/src/logic/pe_map_raw_image.c
+++ b/src/logic/pe_map_raw_image.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/output/pe_output_error.c b/src/output/pe_output_error.c
index aaa8eb0..84a867b 100644
--- a/src/output/pe_output_error.c
+++ b/src/output/pe_output_error.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/output/pe_output_export_symbols.c b/src/output/pe_output_export_symbols.c
index 475ae3f..c648d44 100644
--- a/src/output/pe_output_export_symbols.c
+++ b/src/output/pe_output_export_symbols.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/output/pe_output_idata_libraries.c b/src/output/pe_output_idata_libraries.c
index b68f77f..59da138 100644
--- a/src/output/pe_output_idata_libraries.c
+++ b/src/output/pe_output_idata_libraries.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/output/pe_output_image_category.c b/src/output/pe_output_image_category.c
index c4d5f37..863c84f 100644
--- a/src/output/pe_output_image_category.c
+++ b/src/output/pe_output_image_category.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/output/pe_output_image_sections.c b/src/output/pe_output_image_sections.c
index e6155fb..472ce4b 100644
--- a/src/output/pe_output_image_sections.c
+++ b/src/output/pe_output_image_sections.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/output/pe_output_image_strings.c b/src/output/pe_output_image_strings.c
index 36bf9a6..8ba22fe 100644
--- a/src/output/pe_output_image_strings.c
+++ b/src/output/pe_output_image_strings.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/output/pe_output_image_symbols.c b/src/output/pe_output_image_symbols.c
index f1ec2e8..73e712c 100644
--- a/src/output/pe_output_image_symbols.c
+++ b/src/output/pe_output_image_symbols.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/output/pe_output_mdso_libraries.c b/src/output/pe_output_mdso_libraries.c
index 86fa40c..c5ee1b4 100644
--- a/src/output/pe_output_mdso_libraries.c
+++ b/src/output/pe_output_mdso_libraries.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
@@ -74,6 +74,7 @@ static char * dsolib_name(const struct pe_image_meta * m, int i)
{
uintptr_t va;
uint64_t rva;
+ char * addr;
uint32_t roffset;
struct mdso_raw_meta_record_m32 * mdso32;
struct mdso_raw_meta_record_m64 * mdso64;
@@ -94,7 +95,7 @@ static char * dsolib_name(const struct pe_image_meta * m, int i)
if (pe_get_roffset_from_rva(m,(uint32_t)rva,&roffset) < 0)
return 0;
- return m->r_image.map_addr + roffset;
+ return (addr = m->r_image.map_addr) + roffset;
}
static unsigned char * dsosym_meta(const struct pe_image_meta * m, int j)
@@ -133,6 +134,7 @@ static char * dsosym_string(const struct pe_image_meta * m, int j)
{
uint64_t va;
uint32_t rva;
+ char * addr;
uint32_t roffset;
struct mdso_raw_sym_entry_m32 * sym32;
struct mdso_raw_sym_entry_m64 * sym64;
@@ -158,7 +160,7 @@ static char * dsosym_string(const struct pe_image_meta * m, int j)
if (pe_get_roffset_from_rva(m,rva,&roffset) < 0)
return 0;
- return m->r_image.map_addr + roffset;
+ return (addr = m->r_image.map_addr) + roffset;
}
int pe_output_mdso_libraries(
diff --git a/src/perk.c b/src/perk.c
index f4d440a..0c9c373 100644
--- a/src/perk.c
+++ b/src/perk.c
@@ -1,6 +1,6 @@
/***************************************************************/
/* perk: PE Resource Kit */
-/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/reader/pe_read_coff_header.c b/src/reader/pe_read_coff_header.c
index e6b97f8..493d622 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--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/reader/pe_read_coff_symbol.c b/src/reader/pe_read_coff_symbol.c
index 3394a26..ef72e59 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--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/
diff --git a/src/reader/pe_read_dos_header.c b/src/reader/pe_read_dos_header.c
index ac5054b..caf7fa3 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--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 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 221c9cb..95971f7 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--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 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 720b30a..a8e3aa3 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--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 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 ab6a7d5..bc65d23 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--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 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 00bc034..383539b 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--2017 Z. Gilboa */
+/* Copyright (C) 2015--2021 SysDeer Technologies, LLC */
/* Released under GPLv2 and GPLv3; see COPYING.PERK. */
/***************************************************************/