修改DLL函数地址问题? 帮帮我郁闷
#include<windows.h>
#include<stdio.h>
void main()
{
//haha.dll中的函数声明为
//_declspec(dllexport) void run()
//{
// printf("哈哈你死了,给我调到了");
//}
//hehe.dll中的函数声明为
//_declspec(dllexport) void run()
//{
// printf("呵呵你死了,给我调到了");
//}
HMODULE hmodule = LoadLibrary("haha.dll");
int (__stdcall*funhaha)();
funhaha = GetProcAddress(hmodule,"?run@@YAXXZ");
hmodule = LoadLibrary("hehe.dll");
int (__stdcall*funhehe)();
funhehe = GetProcAddress(hmodule,"?run@@YAXXZ");
BYTE bCode[6];
bCode[0]=0xe8; //call
HANDLE hProcess=::GetCurrentProcess();
FlushInstructionCache(hProcess,NULL,0);
//我想在这里更改funhaha()在本程序的地址,更改为funhehe()
//在下面调用funhaha()的时候,将得到funhehe()的运行结果
//有高手建议我这样 函数地址-调用地址-5 机器码,不懂???
WriteProcessMemory(hProcess,........?不知道怎么解决了.....);
funhaha();
int a = 10;
scanf("%d",&a);
}