home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Tools / ApiHooks 3.0 / ApiHooks.inc < prev    next >
Encoding:
Text File  |  2000-04-03  |  3.3 KB  |  118 lines

  1. ;ApiHook.inc - constants and structure for Hook libraries
  2.  
  3. ;standard-----------------------------------------------------------------------
  4.    HOOK_EXPORT       EQU     00001B
  5.    HOOK_IMPORT       EQU     00010B
  6.    HOOK_BY_ADDRESS   EQU     00100B
  7.    HOOK_HARD         EQU     01000B
  8.    HOOK_NO_UNBIND    EQU     10000B
  9.  
  10.    HOOKS_END         EQU     -1
  11.    HOOKS_DYNAMIC     EQU     -2
  12.  
  13.    ALL_MODULES       EQU     -1
  14.  
  15.    ADDR_CONTENTS     STRUCT  DWORD
  16.     ReturnWhere      LPDWORD ?
  17.     ReturnWhat       DWORD   ?
  18.    ADDR_CONTENTS     ENDS
  19.  
  20.    PADDR_CONTENTS    TYPEDEF PTR ADDR_CONTENTS
  21.  
  22.    API_UNHOOK        STRUCT  DWORD
  23.     MaxNoAddr        DWORD   ?
  24.     CurNoAddr        DWORD   0
  25.     WhereWhat        PADDR_CONTENTS ?
  26.    API_UNHOOK        ENDS
  27.  
  28.    PAPI_UNHOOK       TYPEDEF PTR API_UNHOOK
  29.  
  30.    API_HOOK          STRUCT  DWORD
  31.     ModuleExport     LPCSTR      ?
  32.     ApiNameOrOrd     LPCSTR      ?
  33.     dwFlags          DWORD       ?
  34.     ModuleImport     LPCSTR      ?
  35.     UnhookAddresses  PAPI_UNHOOK ?
  36.     HookAddress      LPVOID      ?
  37.    API_HOOK          ENDS
  38.  
  39.    PAPI_HOOK         TYPEDEF PTR API_HOOK
  40.  
  41.    ErrorSuccess      = 0
  42.    ErrorException    = 1
  43.    ErrorOpenProcess  = 2
  44.    ErrorRemoteAlloc  = 3
  45.    ErrorRemoteExec   = 4
  46.    ErrorRemoteFree   = 5
  47.    ErrorCommandLine  = 6
  48.    ErrorCreateProcess= 7
  49.    ErrorProcNotFound = 8
  50.    ErrorTimeOut      = 9
  51.   
  52.   
  53.    H_E               = HOOK_EXPORT
  54.    H_I               = HOOK_IMPORT
  55.    H_B               = HOOK_BY_ADDRESS
  56.    H_H               = HOOK_HARD
  57.    HOOK_EXACT        = HOOK_EXPORT OR HOOK_IMPORT
  58.    HOOK_ALL          = HOOK_EXPORT OR HOOK_BY_ADDRESS
  59.  
  60. ;useful-------------------------------------------------------------------------
  61.  
  62.    EndHooks          EQU DWORD HOOKS_END
  63.  
  64.    BeginHooks MACRO __nomen
  65.            PUBLIC  __nomen
  66.            ALIGN 4
  67.           __nomen LABEL API_HOOK
  68.            ENDM
  69.  
  70.    MkHook  MACRO  __symbol, __module_export, __procedure, __method, __module_import
  71.            IFNB <__symbol>
  72.             __symbol LABEL API_HOOK
  73.            ENDIF
  74.            IFNB <__module_export>
  75.             DWORD s&__module_export
  76.            ELSE
  77.             DWORD sKERNEL32
  78.            ENDIF
  79.            IFDEF  s&__procedure
  80.             DWORD s&__procedure
  81.            ELSE
  82.             DWORD __procedure
  83.            ENDIF
  84.            IFNB <__method>
  85.             DWORD __method
  86.            ELSE
  87.             DWORD HOOK_ALL
  88.            ENDIF
  89.            IFNB <__module_import>
  90.             IFDEF s&__module_import
  91.              DWORD s&__module_import
  92.             ELSE
  93.              DWORD __module_import
  94.             ENDIF
  95.            ELSE
  96.             DWORD ALL_MODULES
  97.            ENDIF
  98.            IFDEF Unhook&__procedure
  99.             DWORD Unhook&__procedure
  100.            ELSE
  101.             DWORD NULL
  102.            ENDIF
  103.            DWORD New&__procedure
  104.            ENDM
  105.  
  106.   MkUnhook MACRO  __procedure, __maxunhooks
  107.            LOCAL __buffer
  108.            ALIGN 4
  109.           __buffer LABEL ADDR_CONTENTS
  110.            REPT  __maxunhooks*((SIZEOF ADDR_CONTENTS)/(SIZEOF DWORD))
  111.            DWORD 0
  112.            ENDM
  113.            Unhook&__procedure LABEL API_UNHOOK
  114.            DWORD __maxunhooks
  115.            DWORD 0
  116.            DWORD OFFSET __buffer
  117.            ENDM
  118. ;-------------------------------------------------------------------------------