Run:
$ make
$ DYLD_INSERT_LIBRARIES=inject.dylib ./mainThe 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 $@ |