Jump to content

devdeto

Inactive Member
  • Posts

    7
  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

Posts posted by devdeto

  1. Client syserr, someone help me?

    0702 18:19:35730 :: Traceback (most recent call last):
    
    0702 18:19:35730 ::   File "game.py", line 1579, in OnUpdate
    
    0702 18:19:35730 ::   File "title_system.py", line 983, in OnUpdate
    
    0702 18:19:35731 :: IndexError
    0702 18:19:35731 :: : 
    0702 18:19:35731 :: tuple index out of range
    0702 18:19:35731 :: 

     

  2. M2 Download Center

    This is the hidden content, please
    ( Internal )

    Downloading is no longer alive and paid so I share with you! I hope it will benefit!

     

    Features:
    [+] Extremely easy to implement in your client, just build and go.
    [+] No need addiontal sofware or framework full based native coding
    [+] Full based heuristic protections
    [+] Will detect any type of anti-cheat, injector etc.
    [+] Complete anti injection for the entire process.
    [+] Stops DLL injection(Manual Map, Thread Hjacking,Reflective and other ring3 methods)
    [+] Stops remote code injections and other code cave methods.
    [+] Advanced anti hooking methods and hook protections
    [+] Hint: Self thread protections(suspend or kill) Server-Side Based
    [+] Advanced anti-debugging methods.
    [+] Advanced anti analysis methods.
    [+] Its incredibly hard to dump the process and get an idea of how its working.
    [+] Optional:
    [+] Detects potentially cheat files in the game folder(py,asi,mix)

     

    • Metin2 Dev 153
    • Eyes 5
    • Dislove 3
    • Angry 1
    • Sad 2
    • Cry 1
    • Think 3
    • Scream 1
    • Lmao 4
    • Good 44
    • Love 8
    • Love 89
  3. Userinterface.cpp

    1, put it to the beginning

    PVOID* find(const char *szFunc, HMODULE hModule)
    {
    	if (!hModule)
    		hModule = GetModuleHandle(0);
    
    	PIMAGE_DOS_HEADER img_dos_headers = (PIMAGE_DOS_HEADER)hModule;
    
    	PIMAGE_NT_HEADERS img_nt_headers = (PIMAGE_NT_HEADERS)((byte*)img_dos_headers + img_dos_headers->e_lfanew);
    
    	PIMAGE_IMPORT_DESCRIPTOR img_import_desc = (PIMAGE_IMPORT_DESCRIPTOR)((byte*)img_dos_headers + img_nt_headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
    
    	if (img_dos_headers->e_magic != IMAGE_DOS_SIGNATURE)
    		printf("e_magic dos sig\n");
    
    	for (IMAGE_IMPORT_DESCRIPTOR *iid = img_import_desc; iid->Name != 0; iid++)
    	{
    		for (int func_idx = 0; *(func_idx + (void**)(iid->FirstThunk + (size_t)hModule)) != nullptr; func_idx++)
    		{
    			char* mod_func_name = (char*)(*(func_idx + (size_t*)(iid->OriginalFirstThunk + (size_t)hModule)) + (size_t)hModule + 2);
    
    			const intptr_t nmod_func_name = (intptr_t)mod_func_name;
    
    			if (nmod_func_name >= 0)
    			{
    				if (!::strcmp(szFunc, mod_func_name))
    					return func_idx + (void**)(iid->FirstThunk + (size_t)hModule);
    			}
    		}
    	}
    	return 0;
    }
    
    std::uint32_t detour_ptr(const char *szFunc, PVOID newfunction, HMODULE module)
    {
    	void **&&func_ptr = find(szFunc, module);
    
    	if (*func_ptr == newfunction || *func_ptr == nullptr)
    		return 0;
    
    	DWORD old_rights;
    	DWORD new_rights = PAGE_READWRITE;
    
    	VirtualProtect(func_ptr, sizeof (uintptr_t), new_rights, &old_rights);
    
    	uintptr_t ret = (uintptr_t)*func_ptr;
    
    	*func_ptr = newfunction;
    
    	VirtualProtect(func_ptr, sizeof (uintptr_t), old_rights, &new_rights);
    
    	return ret;
    }

    2, include

    #include <windows.h>
    #include <cstdint>

    3, WriteProcessMemory prototype, hook

    using WriteProcessMemoryFn = BOOL(__stdcall*)(HANDLE, LPVOID, LPCVOID, SIZE_T, SIZE_T*);
    WriteProcessMemoryFn oWriteProcessMemory;
    BOOL __stdcall hkWriteProcessMemory(HANDLE hProcess, LPVOID lpBaseAddress, LPCVOID lpBuffer, SIZE_T nSize, SIZE_T *lpNumberOfBytesWritten)
    {
    	return oWriteProcessMemory(nullptr, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesWritten);
    }

    4, search-->  bool Main(HINSTANCE hInstance, LPSTR lpCmdLine)  and  put it to the beginning

        oWriteProcessMemory = (WriteProcessMemoryFn)detour_ptr("WriteProcessMemory", (PVOID)hkWriteProcessMemory, GetModuleHandleA("Kernel32.dll"));

     

     

    This not only protects the MemoryBreak, but also all the cheats that WriteProcessMemory changes the game.

    Now he's hooked, so if something invites WriteProcessMemory to get a nullpt to the handle.

     

     Original post

    • Metin2 Dev 1
    • Good 3
    • Love 10
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.