Use Detours

cd Detours Version 3.0 Build_343\Detours
"C:\Program Files\Microsoft Visual Studio 14.0\VC\bin\nmake.exe"

Detours 也是通过Dll的方式,拦截Api函数。
为什么是修改API的前5个字节?
现在NewCode[]里的指令相当于Jmp MyMessageBoxW
既然已经获取到了Jmp MyMessageBoxW
现在该是将Jmp MyMessageBoxW写入原API入口前5个字节的时候了
//知道为什么是5个字节吗?
//Jmp指令相当于0xe9,占一个字节的内存空间
//MyMessageBoxW是一个地址,其实是一个整数,占4个字节的内存空间
//int n=0x123; n占4个字节和MyMessageBoxW占4个字节是一样的
//1+4=5,知道为什么是5个字节了吧