Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Erotica last won the day on July 19

Erotica had the most liked content!

Community Reputation

150 Excellent


About Erotica

  • Rank
    Rising star

Recent Profile Visitors

2,477 profile views
  1. Erotica

    Release NexonGameThreat (NexonGameSecurity bypass)

    look at the fucking date of the post
  2. Erotica

    Help CLB Channel Server

    Do you spoof the user agent to the nexon launcher, etc?
  3. Erotica

    Discussion Packet Library

    sometimes i forget which year i warp to
  4. Erotica

    Discussion Packet Library

    oh right im not in 2017 anymore
  5. Erotica

    Discussion Packet Library

    @Crypt707 this thread is 2 months old, don't hold your breath.
  6. Erotica

    Help postmessage key send..

    you can use SendMessage if you hook InSendMessage() and return false
  7. Well maple reads the value of the debug registers periodically, and if it is non-zero(as it is, since you set a hwbp) it will crash the game.
  8. You do have the internal maplestory debug register scan bypassed right?
  9. Huh, when I made a redirector for some side/fun project all I did was hook connect() and the guy developing the server for fun (in swift, lol) got in-game with it. About 8-12 months ago.
  10. Or hook with page exceptions/debug registers.
  11. Erotica

    Help Turn on/off Godmode after a period of time

    You can re-write the script fairly easily, or use the lua functionality in CE to do this too. It's a matter of getting the tick count and doing basic subtraction math, how much exactly have you tried before posting this question?
  12. Erotica

    Help Hooking ws2_32.dll send/recv functions

    @Roast Go by the CreateMutex example (in above code you're not using the correct return type and so on, not sure why your hook is not correctly allocated though): #include <winsock2.h> #include <Ws2tcpip.h> #pragma comment(lib, "Ws2_32.lib") bool Detour__Send() { static decltype(&send) _send = &send; decltype(&send) send_hook = [](SOCKET s, const char *buf, int len, int flags) -> int { /* your code */ return _send(s, buf, len, flags); }; return SetHook(true, reinterpret_cast<void**>(&_send), send_hook); }
  13. Erotica

    Help Hooking ws2_32.dll send/recv functions

    Why inject a dll and call the function in dllmain then o.o plus he writes to same process WriteProcessMemory(GetCurrentProcess()
  14. Erotica

    Help Hooking ws2_32.dll send/recv functions

    I too am too lazy to actually read through your posts, well except for the fact that you're writing 6 bytes when only 5 is needed, I suggest using detours as it will do everything for you in this context without you needing to think at all. BOOL SetHook(__in BOOL bInstall, __inout PVOID* ppvTarget, __in PVOID pvDetour) { if (DetourTransactionBegin() != NO_ERROR) return FALSE; if (DetourUpdateThread(GetCurrentThread()) == NO_ERROR) if ((bInstall ? DetourAttach : DetourDetach)(ppvTarget, pvDetour) == NO_ERROR) if (DetourTransactionCommit() == NO_ERROR) return TRUE; DetourTransactionAbort(); return FALSE; } Example detour from Benny's bypass loader, just replace the API in question: BOOL Detour__CreateMutexA() { static decltype(&CreateMutexA) _CreateMutexA = &CreateMutexA; decltype(&CreateMutexA) CreateMutexA_hook = [](LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCSTR lpName) -> HANDLE { if (lpName) { static std::string mutex_name = "WvsClientMtx" + std::to_string(GetCurrentProcessId()); if (!strcmp(lpName, "WvsClientMtx")) { lpName = mutex_name.c_str(); std::vector<char> file_path(MAX_PATH); if (GetModuleFileNameA(GetModuleHandle(NULL), &file_path[0], MAX_PATH)) { std::string temp = std::string(&file_path[0]); if (!LoadLibraryA((temp.substr(0, temp.find_last_of('\\') + 1) + "NexonGameThreat.dll").c_str())) MessageBoxA(NULL, "Failed to load NexonGameThreat.dll", "Loading failure", MB_OK | MB_ICONERROR | MB_TOPMOST | MB_SETFOREGROUND); } } } return _CreateMutexA(lpMutexAttributes, bInitialOwner, lpName); }; return SetHook(TRUE, reinterpret_cast<void**>(&_CreateMutexA), CreateMutexA_hook); } Or an example hooking a maple function: typedef void(__fastcall *CWndMan_t)(void *ecx, void *edx, HWND m_hWnd); auto CWndMan = reinterpret_cast<CWndMan_t>(0x024EFC40); void __fastcall CWndMan_Hook(void *ecx, void *edx, HWND m_hWnd) { std::cout << "\r >>> CWndMan::CWndMan() called. Logging Maple hWnd. \n [$] "; m_hWnd_Maple = m_hWnd; /* also grabbing thread id and writing some shit to a pipe but example is simplified */ CWndMan(ecx, edx, m_hWnd); } /* -- */ SetHook(true, reinterpret_cast<PVOID*>(&CWndMan), &CWndMan_Hook);