Riremito

Riremito's API Hook

Apr 22nd, 2015
1,483
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. /*
  2.     API Hooks
  3. */
  4.  
  5. HWND (WINAPI *_CreateWindowExA)(DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);
  6. HWND WINAPI CreateWindowExA_Hook(DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam){
  7.     if(lpClassName && strstr(lpClassName, "StartUpDlgClass")){
  8.         MapleStory();//wait for unpacking client
  9.     }
  10.     return _CreateWindowExA(dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  11. }
  12.  
  13. HANDLE (WINAPI *_CreateMutexExA)(LPSECURITY_ATTRIBUTES lpMutexAttributes, LPCTSTR lpName, DWORD dwFlags, DWORD dwDesiredAccess);
  14. HANDLE WINAPI CreateMutexExA_Hook(LPSECURITY_ATTRIBUTES lpMutexAttributes, LPCTSTR lpName, DWORD dwFlags, DWORD dwDesiredAccess){
  15.     HANDLE hMutex, hDuplicatedMutex;
  16.     if(lpName && strstr(lpName, "WvsClientMtx")){
  17.         hMutex =  _CreateMutexExA(lpMutexAttributes, lpName, dwFlags, dwDesiredAccess);
  18.         DuplicateHandle(GetCurrentProcess(), hMutex, 0, &hDuplicatedMutex, 0, FALSE, DUPLICATE_CLOSE_SOURCE);
  19.         CloseHandle(hDuplicatedMutex);
  20.         AW.AddString(EDIT_LOG, "Mutexを閉じました\r\n");
  21.         return hMutex;
  22.     }
  23.     return _CreateMutexExA(lpMutexAttributes, lpName, dwFlags, dwDesiredAccess);
  24. }
  25.  
  26. void APIHook(){
  27.     ExportHook user32, kernelbase;
  28.     user32.Init("user32.dll");
  29.     kernelbase.Init("kernelbase.dll");
  30.     user32.Hook("CreateWindowExA", CreateWindowExA_Hook, &_CreateWindowExA);
  31.     kernelbase.Hook("CreateMutexExA", CreateMutexExA_Hook, &_CreateMutexExA);
  32. }
Advertisement
Add Comment
Please, Sign In to add comment