IAT HOOK是指修改IAT中函数地址的值,使它指向我们自己实现的函数,在我们的函数内部调用原函数的技术。
下面演示对MessageBoxA设置IAT HOOK,运行效果如图:
这里演示了对MessageBoxA的修改,除了改变函数行为,我们还可以监视函数的参数和返回值,此处就不演示了,下面是代码。
// IATHook.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <WINDOWS.H>
#include <STDIO.H>
void SetIATHook(LPVOID pOldFuncAddr, LPVOID pNewFuncAddr);
int WINAPI MyMessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType);
void UnsetIATHook(LPVOID pOldFuncAddr, LPVOID pNewFuncAddr);
int main(int argc, char* argv[])
{
SetIATHook