diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/reader/pe_read_aux_rec_section.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/reader/pe_read_aux_rec_section.c b/src/reader/pe_read_aux_rec_section.c new file mode 100644 index 0000000..df75352 --- /dev/null +++ b/src/reader/pe_read_aux_rec_section.c @@ -0,0 +1,32 @@ +/***************************************************************/ +/* 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_section( + const struct pe_raw_coff_symbol * p, + struct pe_meta_aux_rec_section * m, + int idx) +{ + const void * addr; + const struct pe_raw_aux_rec_section * arec; + + addr = &p[++idx]; + arec = (struct pe_raw_aux_rec_section *)addr; + + m->aux_size = pe_read_long(arec->aux_size); + m->aux_num_of_relocs = pe_read_short(arec->aux_num_of_relocs); + m->aux_num_of_line_nums = pe_read_short(arec->aux_num_of_line_nums); + m->aux_check_sum = pe_read_long(arec->aux_check_sum); + m->aux_number = pe_read_short(arec->aux_number); + m->aux_selection = arec->aux_selection[0]; + + return 0; +} |