Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- API Hooks
- */
- 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);
- 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){
- if(lpClassName && strstr(lpClassName, "StartUpDlgClass")){
- MapleStory();//wait for unpacking client
- }
- return _CreateWindowExA(dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
- }
- HANDLE (WINAPI *_CreateMutexExA)(LPSECURITY_ATTRIBUTES lpMutexAttributes, LPCTSTR lpName, DWORD dwFlags, DWORD dwDesiredAccess);
- HANDLE WINAPI CreateMutexExA_Hook(LPSECURITY_ATTRIBUTES lpMutexAttributes, LPCTSTR lpName, DWORD dwFlags, DWORD dwDesiredAccess){
- HANDLE hMutex, hDuplicatedMutex;
- if(lpName && strstr(lpName, "WvsClientMtx")){
- hMutex = _CreateMutexExA(lpMutexAttributes, lpName, dwFlags, dwDesiredAccess);
- DuplicateHandle(GetCurrentProcess(), hMutex, 0, &hDuplicatedMutex, 0, FALSE, DUPLICATE_CLOSE_SOURCE);
- CloseHandle(hDuplicatedMutex);
- AW.AddString(EDIT_LOG, "Mutexを閉じました\r\n");
- return hMutex;
- }
- return _CreateMutexExA(lpMutexAttributes, lpName, dwFlags, dwDesiredAccess);
- }
- void APIHook(){
- ExportHook user32, kernelbase;
- user32.Init("user32.dll");
- kernelbase.Init("kernelbase.dll");
- user32.Hook("CreateWindowExA", CreateWindowExA_Hook, &_CreateWindowExA);
- kernelbase.Hook("CreateMutexExA", CreateMutexExA_Hook, &_CreateMutexExA);
- }
Advertisement
Add Comment
Please, Sign In to add comment