summaryrefslogtreecommitdiffhomepage
path: root/src/reader
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2025-06-10 15:36:27 +0000
committermidipix <writeonce@midipix.org>2025-06-10 18:06:26 +0000
commit6cc493ea65bf2c94d03f299e6343e8e50b4fb510 (patch)
treeb43078ede385f095b57fc38bc992ad5f41e3fe4b /src/reader
parenta4b1bbeca250dea98f341502d71f09af636f9a1a (diff)
downloadperk-6cc493ea65bf2c94d03f299e6343e8e50b4fb510.tar.bz2
perk-6cc493ea65bf2c94d03f299e6343e8e50b4fb510.tar.xz
reader: implemented pe_read_aux_rec_section().
Diffstat (limited to 'src/reader')
-rw-r--r--src/reader/pe_read_aux_rec_section.c32
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;
+}