From 21d6c2c2076b1bcd852de6f76dafdfffbd361731 Mon Sep 17 00:00:00 2001 From: rgimad Date: Fri, 18 Apr 2025 12:42:49 +0300 Subject: [PATCH] seems like finished preprocess_calltrick todo check it --- kpack_c.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/kpack_c.c b/kpack_c.c index 5f53670..53c730f 100644 --- a/kpack_c.c +++ b/kpack_c.c @@ -43,7 +43,6 @@ unsigned pack_lzma(unsigned char *infile, unsigned char *outfile, unsigned insiz unsigned preprocess_calltrick(unsigned char *infile, unsigned insize, unsigned char ct1[256], unsigned *ctn, unsigned char *cti) { - // TODO: check unsigned char *buf = malloc(2*insize); if (buf == NULL) { goto pack_calltrick_fail; @@ -78,7 +77,7 @@ unsigned preprocess_calltrick(unsigned char *infile, unsigned insize, unsigned c buf_ptr += 8; } - } while(count > 0); // + } while(count > 0); unsigned idx = 0; while (idx < 256 && ct1[idx] != 0) { @@ -89,23 +88,18 @@ unsigned preprocess_calltrick(unsigned char *infile, unsigned insize, unsigned c } *cti = ~(unsigned char)256; - if (buf_ptr == buf) { - free(buf); - return 0; - } else { + unsigned tmp; + while (buf_ptr != buf) { buf_ptr -= 8; - unsigned tmp; memcpy(&tmp, *buf_ptr, 4); memcpy(tmp - 4, cti, 1); - // TDOO here jmp @b } - - // TODO ! + free(buf); + return tmp; pack_calltrick_fail: *ctn = 0; - // ebx = 0; // TODO what - return 0; // 0? + return 0; }