FlushInstructionCache 把缓存里的数据重写回主内存里去,让CPU重新加载新的指令
一般的程序都是在运行前已经编译好的,因此修改指令的机会比较少,但在软件的防确解里,倒是使用很多。当修改指令之后,怎么样才能让CPU去执行新的指令呢?这样就需要使用函数FlushInstructionCache来把缓存里的数据重写回主内存里去,让CPU重新加载新的指令,才能执行新的指令。下面就来学习一下使用这个函数来实现跳到一个静态函数里执行,而不是直接地调用这个函数。
函数FlushInstructionCache声明如下:
WINBASEAPI
BOOL
WINAPI
FlushInstructionCache(
__in HANDLE hProcess,
__in_bcount_opt(dwSize) LPCVOID lpBaseAddress,
__in SIZE_T dwSize
);
hProcess是进程句柄。
lpBaseAddress是要同步内存的开始地址。
dwSize是要同步内存的大小。