Guest User

Untitled

a guest
Jul 4th, 2011
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. #include <io.h>
  2. #include <windows.h>
  3. #include <stdio.h>
  4.  
  5.  
  6. #include "NCodeHook/NCodeHookInstantiation.h"
  7.  
  8.  
  9. __declspec(dllexport) void dummyExport() {}
  10. FILE *err;
  11. FILE *out;
  12.  
  13.  
  14. typedef VOID (WINAPI *ExitProcessFPtr)(UINT uExitCode);
  15. ExitProcessFPtr originalExitProcess = NULL;
  16. VOID WINAPI ExitProcessHook(UINT uExitCode)
  17. {
  18.     //MessageBox(0, L"Good bye!", L"You've been hooked!", MB_ICONINFORMATION);
  19.     fprintf(out, "Unloading");
  20.     fclose(out);
  21.     fclose(err);
  22.     originalExitProcess(uExitCode);
  23. }
  24.  
  25. NCodeHookIA32 nCodeHook;
  26. void hookExitProcess()
  27. {
  28.     originalExitProcess = nCodeHook.createHookByName("kernel32.dll", "ExitProcess", ExitProcessHook);
  29. }
  30.  
  31. void initializeHooks()
  32. {
  33.     err = fopen("c:\\error.log", "w");
  34.     out = fopen("c:\\output.log", "w");
  35.     fprintf(out, "Initializing");
  36.     hookExitProcess();
  37. }
  38.  
  39. BOOL APIENTRY DllMain( HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved )
  40. {
  41.     switch (ul_reason_for_call)
  42.     {
  43.         case DLL_PROCESS_ATTACH:
  44.             initializeHooks();
  45.             break;
  46.         case DLL_THREAD_ATTACH:
  47.         case DLL_THREAD_DETACH:
  48.         case DLL_PROCESS_DETACH:
  49.             break;
  50.     }
  51.     return TRUE;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment