Run:
$ make
$ DYLD_INSERT_LIBRARIES=inject.dylib ./main
The output is:
injection init
main
#include <stdio.h> | |
__attribute__((constructor)) static void injection_init(void) { | |
fputs("injection init\n", stdout); | |
} |
#include <stdio.h> | |
int main(int argc, char **argv) { | |
fputs("main\n", stdout); | |
} |
all: inject.dylib main | |
inject.dylib: inject.c | |
cc -dynamiclib $^ -o $@ | |
main: main.c | |
cc $^ -o $@ |