diff options
author | midipix <writeonce@midipix.org> | 2025-06-10 18:05:20 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2025-06-10 18:06:26 +0000 |
commit | 09166f55c8dd0c1b09c57a66cac337374e694e06 (patch) | |
tree | 01c56be58621fcb98ac105dc5d81206919af6e11 | |
parent | 6cc493ea65bf2c94d03f299e6343e8e50b4fb510 (diff) | |
download | perk-09166f55c8dd0c1b09c57a66cac337374e694e06.tar.bz2 perk-09166f55c8dd0c1b09c57a66cac337374e694e06.tar.xz |
reader: implemented pe_read_aux_rec_weaksym().
-rw-r--r-- | include/perk/perk.h | 3 | ||||
-rw-r--r-- | project/common.mk | 1 | ||||
-rw-r--r-- | src/reader/pe_read_aux_rec_weaksym.c | 28 |
3 files changed, 32 insertions, 0 deletions
diff --git a/include/perk/perk.h b/include/perk/perk.h index 8c0baae..59b55e5 100644 --- a/include/perk/perk.h +++ b/include/perk/perk.h @@ -362,6 +362,9 @@ perk_api int pe_read_import_lookup (const unsigned char *, perk_api int pe_read_aux_rec_section (const struct pe_raw_coff_symbol *, struct pe_meta_aux_rec_section *, int idx); +perk_api int pe_read_aux_rec_weaksym (const struct pe_raw_coff_symbol *, struct pe_meta_aux_rec_weaksym *, + int idx); + /* low-level symtbl api */ perk_api uint32_t pe_hash_mbstr_crc32 (const unsigned char *); perk_api uint64_t pe_hash_mbstr_crc64 (const unsigned char *); diff --git a/project/common.mk b/project/common.mk index 8951a25..8eab6ac 100644 --- a/project/common.mk +++ b/project/common.mk @@ -35,6 +35,7 @@ API_SRCS = \ src/output/pe_output_idata_libraries.c \ src/output/pe_output_mdso_libraries.c \ src/reader/pe_read_aux_rec_section.c \ + src/reader/pe_read_aux_rec_weaksym.c \ src/reader/pe_read_coff_header.c \ src/reader/pe_read_coff_symbol.c \ src/reader/pe_read_dos_header.c \ diff --git a/src/reader/pe_read_aux_rec_weaksym.c b/src/reader/pe_read_aux_rec_weaksym.c new file mode 100644 index 0000000..b02c44c --- /dev/null +++ b/src/reader/pe_read_aux_rec_weaksym.c @@ -0,0 +1,28 @@ +/***************************************************************/ +/* perk: PE Resource Kit */ +/* Copyright (C) 2015--2025 SysDeer Technologies, LLC */ +/* Released under GPLv2 and GPLv3; see COPYING.PERK. */ +/***************************************************************/ + +#include <perk/perk.h> +#include <perk/perk_consts.h> +#include <perk/perk_structs.h> +#include "perk_endian_impl.h" +#include "perk_reader_impl.h" + +int pe_read_aux_rec_weaksym( + const struct pe_raw_coff_symbol * p, + struct pe_meta_aux_rec_weaksym * m, + int idx) +{ + const void * addr; + const struct pe_raw_aux_rec_weaksym * arec; + + addr = &p[++idx]; + arec = (struct pe_raw_aux_rec_weaksym *)addr; + + m->aux_tag_index = pe_read_long(arec->aux_tag_index); + m->aux_characteristics = pe_read_long(arec->aux_characteristics); + + return 0; +} |