⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apihook.h

📁 操作系统中的一个例子
💻 H
字号:
/*
 * Copyright (c) 2000-2008
 * Author: Weiming Zhou
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  
 */

#ifndef __APIHOOK_H__
#define __APIHOOK_H__

/**	ApiHook 模块初始化函数

	@param	INT nMaxHookFuncCounts - 最大可设置的钩子数量	
	@return	INT (by default) - NULL 表示失败
*/
HANDLE	ApiHook_Init(UINT nMaxHookFuncCounts);

/**	通过地址来设置某个函数的钩子函数

	@param	HANDLE hApiHook - 由ApiHook_Init()函数生成的句柄	
	@param	DWORD dwSrcFuncAddr - 源函数地址	
	@param	DWORD dwNewFuncAddr - 钩子函数地址	
	@return	INT (by default) - -1表示失败,>=0表示在hook数组中的序号	
*/
INT	ApiHook_SetByAddr(HANDLE hApiHook, DWORD dwSrcFuncAddr, DWORD dwNewFuncAddr);
INT	ApiHook_SetByName(HANDLE hApiHook, char *pszDllName, char *pszFuncName, DWORD dwNewFuncAddr);

/**	取消某个函数的钩子函数设置

	@param	HANDLE hApiHook - 由ApiHook_Init()函数生成的句柄	
	@param	DWORD dwSrcFuncAddr - 源函数地址	
	@return	INT (by default) - -1表示失败,>=0表示在hook数组中的序号	
*/
INT	ApiHook_UnSetByAddr(HANDLE hApiHook, DWORD dwSrcFuncAddr );
INT	ApiHook_UnSetByName(HANDLE hApiHook, char *pszDllName, char *pszFuncName);

/**	获取最大可设置的钩子数量

	@param	HANDLE hApiHook - 由ApiHook_Init()函数生成的句柄	
	@return	INT - 最大可设置的钩子数量	
*/
UINT     ApiHook_GetMaxHooks(HANDLE hApiHook);

/**	ApiHook模块关闭函数

	@param	HANDLE - 由ApiHook_Init()函数生成的句柄		
	@return	INT (by default) - 失败返回-1, 成功返回0。	
*/
INT	ApiHook_Close(HANDLE);


#endif //__APIHOOK_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -