ApiInfo.h
资源名称:HookAPI [点击查看]
上传用户:nbcables
上传日期:2007-01-11
资源大小:1243k
文件大小:1k
源码类别:
钩子与API截获
开发平台:
Visual C++
- // APIInfo.h: interface for the CAPIInfo class.
- //
- //////////////////////////////////////////////////////////////////////
- #if !defined(AFX_APIINFO_H__48FBE38B_70DC_4906_A99D_4314ED371ECF__INCLUDED_)
- #define AFX_APIINFO_H__48FBE38B_70DC_4906_A99D_4314ED371ECF__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- typedef void (WINAPI *APIFUNC)(void);
- typedef struct tagAPIINFO
- {
- char module_name[100];
- char api_name[50];
- char my_api_name[50];
- char my_friend_api_name[50];
- int param_count;
- int start_pos;
- APIFUNC old_api, my_api;
- int f_hooked;
- BYTE save_bytes[20];
- #ifdef WIN95
- HANDLE hMutex, m_hMutex;
- #else
- CRITICAL_SECTION cs;
- DWORD old_protection_flags;
- #endif
- tagAPIINFO *pnext;
- }APIINFO;
- class CAPIInfo
- {
- public:
- CAPIInfo();
- virtual ~CAPIInfo();
- int m_count;
- APIINFO *m_pInfo;
- APIINFO *Add(char *module_name, char *api_name, char *my_api_name,
- int param_count, APIFUNC old_api=NULL, APIFUNC my_api =NULL,
- char *my_friend_api_name =NULL, int start_pos=0);
- int DeleteAll();
- APIINFO *FindByMyAPI(APIFUNC my_api);
- APIINFO *FindByOldAPI(APIFUNC old_api);
- APIINFO *FindByAPIName(char *api_name);
- APIINFO *FindByMyAPIName(char *my_api_name);
- int lock(APIINFO *pinfo);
- int unlock(APIINFO *pinfo);
- };
- #endif // !defined(AFX_APIINFO_H__48FBE38B_70DC_4906_A99D_4314ED371ECF__INCLUDED_)