c++修改函数返回地址

来源:互联网 发布:云豹直播app源码下载 编辑:程序博客网 时间:2024/06/11 18:35
#include <iostream>#include <stdio.h>using namespace std;int retAddr = 0;void func(){// 修改函数返回值,使其回到main函数中去__asm{mov eax, dword ptr[retAddr]mov dword ptr[ebp], eax;sub ebp, 4 sub esp, 4}cout<<"执行func()"<<endl;}int funcAddr = int(func);bool myFunction(){// 将函数返回值记录在全局变量中// 改变函数返回值,使其跳转到func__asm {mov eax , dword ptr[ebp+4]mov dword ptr[retAddr], eaxmov eax,  dword ptr[funcAddr]mov dword ptr[ebp+4], eax}cout<<"执行 myFunction()"<<endl;return false;}int main(){myFunction();cout<<"返回到main()中。"<<endl;system("pause");}