Можно попробовать получить указатель на функцию и записать по нему опкод инструкции
jmp адресс_подменной_функции
Я так не пробовал, но мне самому уже интересно...
Добавлено через 8 минут
C++ |
1
2
3
4
5
6
7
8
9
10
11
| #include <cstdint>
#include <cstdio>
int (*fp_putchar)( int );
int main()
{
fp_putchar = putchar;
((uint8_t *)fp_putchar)[0] = 0xc3;
return 0;
} |
|
Windows Console приложение при запуске вываливается. Видимо Windows запрещает запись в код.. Но думаю можно как-нибудь исхитриться.