Можно посчитать контрольную сумму функции, примерно так:
static int test_proc()
{
return 1;
}
static void size_proc()
{}
static size_t test_proc_size()
{
return (uintptr_t)((uintptr_t)(void*)size_proc - (uintptr_t)(void*)test_proc);
}
test_proc - Адрес в памяти вашей функции.
test_proc_size - Размер вашей функции.
Ну и монипулируйте с этими данными, можете сами поменять функцию.)))
Только оптимизацию компилятора отключите, либо еще вариант, дизасемблируйте вашу функцию и сделайте ассемблерную вставку, тогда 100 процентов все отработает, т.е. посчитаете контрольную сумму и т.д.