Files
ctf/2026/cscg/rev/gloomweaver/trace_hook.c
2026-04-15 01:05:54 +02:00

21 lines
601 B
C

// trace_hook.c — intercept signal handler to log VM state
#define _GNU_SOURCE
#include <signal.h>
#include <stdio.h>
#include <dlfcn.h>
static FILE *trace;
int sigaction(int signum, const struct sigaction *act,
struct sigaction *oldact) {
// Log which signals are being registered
if (!trace) trace = fopen("/tmp/vm_trace.txt", "w");
fprintf(trace, "sigaction(%d)\n", signum);
fflush(trace);
// Call real sigaction
int (*real)(int, const struct sigaction*, struct sigaction*) =
dlsym(RTLD_NEXT, "sigaction");
return real(signum, act, oldact);
}