/* fakemain.c * Heiher */ #include #define __USE_GNU#include static void do_something(void){ printf("Hello!\n");} int __libc_start_main(int (*main)(int, char **, char **), int argc, char **ubp_av, void (*init)(void), void (*fini)(void), void (*rtld_fini)(void), void (*stack_end)){ int (*__libc_start_main_real)(int (*main) (int, char **, char **), int argc, char **ubp_av, void (*init)(void), void (*fini)(void), void (*rtld_fini)(void), void (*stack_end)); do_something(); __libc_start_main_real = dlsym(RTLD_NEXT, "__libc_start_main"); return __libc_start_main_real(main, argc, ubp_av, init, fini, rtld_fini, stack_end);} |