From e053c212dfb6aea2e11a50e71991fa1620a89522 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Thu, 31 Oct 2024 23:00:40 +0100 Subject: [PATCH] fix: memory cleanup --- Cargo.lock | 2 +- libs/deob/Cargo.toml | 2 +- libs/deob/src/deob.c | 11 ++++------- libs/deob/src/deob.h | 7 ++++--- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d5c497e..7d49482 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -273,7 +273,7 @@ checksum = "da692b8d1080ea3045efaab14434d40468c3d8657e42abddfffca87b428f4c1b" [[package]] name = "deob" -version = "0.1.0" +version = "0.1.1" dependencies = [ "cc", ] diff --git a/libs/deob/Cargo.toml b/libs/deob/Cargo.toml index 49ea46c..26d9604 100644 --- a/libs/deob/Cargo.toml +++ b/libs/deob/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "deob" -version = "0.1.0" +version = "0.1.1" edition = "2021" [build-dependencies] diff --git a/libs/deob/src/deob.c b/libs/deob/src/deob.c index 7107dcd..ce5fd9c 100644 --- a/libs/deob/src/deob.c +++ b/libs/deob/src/deob.c @@ -21,16 +21,13 @@ #include "deob.h" void deob(char *in) { + char *d = malloc(LD*sizeof(char)); const long long s[2] = {S0, S1}; - char d[] = "OSTAR.password$OSB"; - for (size_t i = 0; i < DL; i++) d[i] = (CS)[i]; + for (size_t i = 0; i < LD; i++) d[i] = (CS)[i]; size_t l = strlen(in) / 2; for (size_t i = 0; i < l; i++) { - for (size_t j = 0; j < DL; j++) { - DLT(0); - DLT(1); - } + for (size_t j = 0; j < LD; j++) { DLT(0); DLT(1); } DLS(i); } - INZ(l); + INZ(l); F(d); } diff --git a/libs/deob/src/deob.h b/libs/deob/src/deob.h index ee50efb..ee77202 100644 --- a/libs/deob/src/deob.h +++ b/libs/deob/src/deob.h @@ -28,11 +28,12 @@ #define S0 8373972096940928081 #define S1 7378413942531504450 #define CS (char*)&s -#define DL sizeof(d) / sizeof(d[0]) - 3 #define I2 i*2 #define INZ(var) in[var] = 0 -#define DLS(idx) in[idx] = (d[DL+1]<<4)|d[DL] -#define DLT(idx) d[DL+idx] = (in[I2+idx] == d[j]) ? (char)j : d[DL+idx] +#define LD 16 +#define DLS(idx) in[idx] = (d[LD+1]<<4)|d[LD] +#define DLT(idx) d[LD+idx] = (in[I2+idx] == d[j]) ? (char)j : d[LD+idx] +#define F(var) free(var) void deob(char *in);