1. 让程序跳转到绝对地址为0x456789
方法一:
step01: 将0x456789地址强制转换为函数指针类型,即: (void (*)())0x456789
step02: 然后调用:((void (*)())0x456789)()
方法二:
step01: typedef (void (*)()) VoidFuncPtr;
step02: ((VoidFuncPtr)0x456789)();
sample:
#include <stdio.h>
void test_fun(void);
int main(void)
{
unsigned int func_addr;
func_addr = test_fun; //函数名其实就是一个地址
((void (*)())func_addr)();
return 0;
}
void test_fun()
{
printf("Test function pointer!\n");
}
结果: