types.h
上传用户:kittypts
上传日期:2018-02-11
资源大小:241k
文件大小:1k
源码类别:

PlugIns编程

开发平台:

Visual C++

  1. #ifndef _DV_TYPES_H_ 
  2. #define _DV_TYPES_H_
  3. /**
  4. This file contains the main and basic structures.
  5. */
  6. //Includes:
  7. #include <WTypes.h>
  8. #include <string>
  9. #include <vector>
  10. #include "List.h"
  11. #include "enums.h"
  12. #ifdef _DEBUG
  13. # define NODEFAULT   _ASSERT(0)
  14. #else
  15. # define NODEFAULT   __assume(0)
  16. #endif
  17. #define ABSTRACT 0
  18. #define INVALID_INDEX (-1)
  19. #define QUERY_TOKEN TEXT("!")
  20. #define DV_PTR __int3264
  21. #define DV_HOOK_ID long long
  22. #define REGISTER_SIZE (sizeof(void*))
  23. #define STACK_SIZE 256*1024
  24. #define STACK_MAX_SIZE 1024*1024
  25. //Asm code types:
  26. typedef unsigned char asmcode;
  27. typedef unsigned short asmcodew;
  28. #define JMP_SIZE (sizeof(asmcode) + sizeof(DV_PTR))
  29. typedef NktList<DWORD> NktIdList;
  30. typedef NktList<GUID> NktGuidList;
  31. typedef std::basic_string<TCHAR> NktString;
  32. typedef std::vector<NktString> NktStringVector;
  33. /************************************************************************/
  34. /* Registers:                                                           */
  35. /* LastError, EFLAGS, EAX, ECX, EDX, EBX, original ESP, EBP, ESI, EDI */
  36. /************************************************************************/
  37. typedef struct _NktRegisters
  38. {
  39. INT_PTR lastError, EFLAGS, EDI, ESI, EBP, ESP, EBX, EDX, ECX, EAX;
  40. } NktRegisters;
  41. /**
  42. Function Call Context
  43. */
  44. typedef struct
  45. {
  46. LPCVOID pms;
  47. NktRegisters* regs;
  48. INT_PTR tag;
  49. } NktCallContext;
  50. #endif //_DV_TYPES_H_