当前位置:   article > 正文

vc++HOOK API黑客外挂编程必知必会

vc++HOOK API黑客外挂编程必知必会

 
#include <windows.h>

// 定义API挂接项结构
typedef struct _HOOK_ITEM {
 DWORD dwAddr ;   // IAT项所在地址
 DWORD dwOldValue ;  // IAT项的原始函数地址
 DWORD dwNewValue ;  // IAT项的新函数地址
} HOOK_ITEM, *PHOOK_ITEM ;
HOOK_ITEM HookItem = {0} ; // 定义IAT项,用于保存MessageBoxA的IAT项信息

// 定义MessageBoxA函数原型
typedef int (WINAPI* PFNMessageBoxA)( HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType ) ;

// 定义重定向API的实现函数
BOOL WINAPI RedirectApi ( PCHAR pDllName, PCHAR pFunName, DWORD dwNewProc, PHOOK_ITEM pItem ) ;

// 自定义的MessageBoxA函数
// 实现对原始MessageBoxA的输入、输出参数的监控,甚至是取消调用
int WINAPI NEW_MessageBoxA( HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType )
{
 // 此处可以观察/修改调用参数,甚至可以取消调用直接返回。
 // ……

 // 取得原函数地址
 PFNMessageBoxA pfnMessageBoxA = (PFNMessageBoxA)HookItem.dwOldValue ;

 // 输出测试信息,
 // 如果这里直接调用MessageBoxA,就进入无限循环
 p

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/160346
推荐阅读
相关标签
  

闽ICP备14008679号