From d762007a7edb37b2732db9b74b6970dfa8d791ec Mon Sep 17 00:00:00 2001 From: York Jasper Niebuhr Date: Mon, 27 Oct 2025 00:45:47 +0100 Subject: [PATCH] Selfpatch randomizer final field compilation --- selfpatch/src/targets.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/selfpatch/src/targets.c b/selfpatch/src/targets.c index 3e784bf..6c18dff 100644 --- a/selfpatch/src/targets.c +++ b/selfpatch/src/targets.c @@ -17,7 +17,7 @@ struct Field { uint32_t offset; uint32_t size; - uint32_t flags; + uint32_t flags; // TODO -> fixed flag! }; struct FinalField { @@ -285,7 +285,18 @@ int spslr_randomize(uint32_t target) { for (uint32_t i = 0; i < shuffle_count; i++) target_shuffle_one(t); - // TODO final_fields + // Compile array of final fields + t->final_fields = (struct FinalField*)malloc(sizeof(struct FinalField) * t->field_count); + if (!t->final_fields) + return -1; + + for (uint32_t i = 0; i < t->field_count; i++) { + const struct Field* f = &t->fields[i]; + struct FinalField* ff = &t->final_fields[f->initial_idx]; + + ff->initial_offset = f->initial_offset; + ff->offset = f->offset; + } return 0; }