#include #include void fake_printf(void) { puts("GOT overwriten !"); } int main(int argc, char **argv) { unsigned int *p = (void*)(strtol(argv[1], NULL, 0)); *p = (unsigned int)fake_printf; printf("Overwrite %p : OK !\n", p); return 0; }