From c6db5f49cd1bfe51828a09db1deced4b30d65981 Mon Sep 17 00:00:00 2001 From: 0x35c <> Date: Tue, 6 May 2025 14:00:36 +0200 Subject: [PATCH] level04: source code done --- level04/source.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 level04/source.c diff --git a/level04/source.c b/level04/source.c new file mode 100644 index 0000000..06e286d --- /dev/null +++ b/level04/source.c @@ -0,0 +1,42 @@ +#include +#include +#include +#include +#include +#include + +int main(void) +{ + int stat_loc; + char s[128]; + int v6; + int v7; + int v8; + pid_t v9; + + v9 = fork(); + memset(s, 0, sizeof(s)); + v8 = 0; + stat_loc = 0; + if (v9) { + do { + wait(&stat_loc); + v6 = stat_loc; + if ((stat_loc & 0x7F) == 0 || + (v7 = stat_loc, + (char)((stat_loc & 0x7F) + 1) >> 1 > 0)) { + puts("child is exiting..."); + return 0; + } + v8 = ptrace(PTRACE_PEEKUSER, v9, 44, 0); + } while (v8 != 11); + puts("no exec() for you"); + kill(v9, 9); + } else { + prctl(1, 1); + ptrace(PTRACE_TRACEME, 0, 0, 0); + puts("Give me some shellcode, k"); + gets(s); + } + return 0; +}