ApiInfo.h
上传用户:nbcables
上传日期:2007-01-11
资源大小:1243k
文件大小:1k
源码类别:

钩子与API截获

开发平台:

Visual C++

  1. // APIInfo.h: interface for the CAPIInfo class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_APIINFO_H__48FBE38B_70DC_4906_A99D_4314ED371ECF__INCLUDED_)
  5. #define AFX_APIINFO_H__48FBE38B_70DC_4906_A99D_4314ED371ECF__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. typedef void (WINAPI *APIFUNC)(void);
  10. typedef struct tagAPIINFO
  11. {
  12. char module_name[100];
  13. char api_name[50];
  14. char my_api_name[50];
  15. char my_friend_api_name[50];
  16. int param_count;
  17. int start_pos;
  18. APIFUNC old_api, my_api;
  19. int f_hooked;
  20. BYTE save_bytes[20];
  21. #ifdef WIN95
  22. HANDLE hMutex, m_hMutex;
  23. #else
  24. CRITICAL_SECTION cs;
  25. DWORD old_protection_flags;
  26. #endif
  27. tagAPIINFO *pnext;
  28. }APIINFO;
  29. class CAPIInfo
  30. {
  31. public:
  32. CAPIInfo();
  33. virtual ~CAPIInfo();
  34. int m_count;
  35. APIINFO *m_pInfo;
  36. APIINFO *Add(char *module_name, char *api_name, char *my_api_name,
  37. int param_count, APIFUNC old_api=NULL, APIFUNC my_api =NULL,
  38. char *my_friend_api_name =NULL, int start_pos=0);
  39. int DeleteAll();
  40. APIINFO *FindByMyAPI(APIFUNC my_api);
  41. APIINFO *FindByOldAPI(APIFUNC old_api);
  42. APIINFO *FindByAPIName(char *api_name);
  43. APIINFO *FindByMyAPIName(char *my_api_name);
  44. int lock(APIINFO *pinfo);
  45. int unlock(APIINFO *pinfo);
  46. };
  47. #endif // !defined(AFX_APIINFO_H__48FBE38B_70DC_4906_A99D_4314ED371ECF__INCLUDED_)