实现过程:
一:下载、编译DetoursExpress3.0
二:找到detouurs安装目录下的include、lib.X86文件,把这三个.h的头文件和两个lib文件拷贝到vs2013信息项目源文件里面。
三:引用头文件、lib文件 (如#pragma comment(lib,"detours.lib")引用库文件为例)。
四:详细代码如下:
#include <stdio.h>
#include <Windows.h>
#include "detours.h"
#pragma comment(lib,"detours.lib")
int (*POldsystem)(const char * _Command) = system;
void NewSystem(const char * _Command)
{
printf("你执行的是 %s\n", _Command);//打印
}
void hook()
{
DetourRestoreAfterWith();//恢复之前的状态
DetourTransactionBegin();//开始劫持;
DetourUpdateThread(GetCurrentThread());//刷新当前线程
DetourAttach((void **)&POldsystem, NewSystem);//劫持
DetourTransactionCommit();//立即生效
}
int main()
{
system("notepad");
hook();
system("劫持成功\n");
system("pause");
getchar();
return 0;
}