Jump to content

Koray

Active Member
  • Posts

    384
  • Joined

  • Last visited

  • Days Won

    58
  • Feedback

    0%

Everything posted by Koray

  1. Index; Call example: from ui_wrapper import _ui veriable = _ui().TextLine(parent, text, x, y) Credits: Eigenartig - [Hidden Content] - [Hidden Content] Script: [Hidden Content]
  2. M2 Download Center Download Here / Download Here / Download Here / Download Here / Download Here / Download Here Anti Wait Hack: Anti Safezone: Anti Ghostmode: Anti Wallhack: Anti Long name generator: #Update 1: -Clientside- -Serverside- Anti Mining Bot: Fishing without water fix Anti Colorful Shop Anti Drophack #Update 2: -Serverside- Anti Fish Bot Anti Guild Maker(low level) Activate Anti Teleport Hack -Clientside- Activate py inject protection Anti Anti Stun & Anti Visual GM Effect Anti Attackspeed & Anti Movespeed This thread subjects enough for general cheats For better bot and script cheat security change module or function names For this here basic tutorial for change net module name
  3. Client: *Packet.h typedef struct command_client_version { BYTE header; char filename[32+1]; char timestamp[32+1]; } TPacketCGClientVersion; typedef struct command_client_version2 { BYTE header; char filename[32+1]; char timestamp[32+1]; } TPacketCGClientVersion2; Change: typedef struct command_client_version { BYTE header; char filename[32+1]; char filesize[32+1]; char timestamp[32+1]; } TPacketCGClientVersion; typedef struct command_client_version2 { BYTE header; char filename[32+1]; char filesize[32+1]; char timestamp[32+1]; } TPacketCGClientVersion2; *PythonNetworkStreamPhaseGame.cpp Search bool CPythonNetworkStream::SendClientVersionPacket() Add it upper static const char* GetMainFileSize(const char* FileName) { std::string sizebuf; HANDLE hFile = CreateFileA(FileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); sizebuf = GetFileSize(hFile, NULL); return sizebuf.c_str(); } Search /2x/ strncpy(kVersionPacket.filename, filename.c_str(), sizeof(kVersionPacket.filename)-1); Add it under /2x/ strncpy(kVersionPacket.filesize, GetMainFileSize(filename.c_str()), sizeof(kVersionPacket.filename)-1); Server: *Packet.h typedef struct command_client_version { BYTE header; char filename[32+1]; char timestamp[32+1]; } TPacketCGClientVersion; typedef struct command_client_version2 { BYTE header; char filename[32+1]; char timestamp[32+1]; } TPacketCGClientVersion2; Change: typedef struct command_client_version { BYTE header; char filename[32+1]; char filesize[32+1]; char timestamp[32+1]; } TPacketCGClientVersion; typedef struct command_client_version2 { BYTE header; char filename[32+1]; char filesize[32+1]; char timestamp[32+1]; } TPacketCGClientVersion2; *input.cpp Search: void CInputProcessor::Version(LPCHARACTER ch, const char* c_pData) { if (!ch) return; TPacketCGClientVersion * p = (TPacketCGClientVersion *) c_pData; Add it under if (strcmp(p->filesize, "CORRECT_SIZE")){ ch->ChatPacket(CHAT_TYPE_NOTICE, "Illegal login detected"); LogManager::instance().HackLog("CLIENT_CONFLICT", ch); ch->GetDesc()->SetPhase(PHASE_CLOSE); return; } Change CORRECT_SIZE to yourself as string untested
  4. #include <Windows.h> void Starter(){ DWORD pRet[] = { 0x31, 0xC0, 0xC3 }; WriteProcessMemory(GetCurrentProcess(), (LPVOID)(VOID*)GetProcAddress(GetModuleHandleA((LPCSTR)"python22.dll"), "PyRun_SimpleFile"), (LPVOID)pRet, sizeof(pRet), 0); } BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { if(ul_reason_for_call == 1) Starter(); return TRUE; } Detours always isn't required
  5. Create new user for localhost and set privileges after change with this PLAYER_SQL: 127.0.0.1 crn2OjF !23@ player COMMON_SQL: 127.0.0.1 crn2OjF !23@ common LOG_SQL: 127.0.0.1 crn2OjF !23@ log and don't forget conf.txt SQL_ACCOUNT = "127.0.0.1 account acc pass 0" SQL_PLAYER = "127.0.0.1 player acc pass 0" SQL_COMMON = "127.0.0.1 common acc pass 0" SQL_HOTBACKUP = "127.0.0.1 hotbackup acc pass 0"
  6. cmd_gm.cpp if (tch && ch != tch) tch->AddAffect(AFFECT_BLOCK_CHAT, POINT_NONE, 0, AFF_NONE, lBlockDuration, 0, true); change if (tch && ch != tch) { char buf_blchat[56]; snprintf(buf_blchat, sizeof(buf_blchat), "BLOCKCHAT FOR: %s", tch->GetName()); LogManager::instance().GMCommandLog(ch->GetPlayerID(), ch->GetName(), ch->GetDesc()->GetHostName(), g_bChannel, buf_blchat); tch->AddAffect(AFFECT_BLOCK_CHAT, POINT_NONE, 0, AFF_NONE, lBlockDuration, 0, true); } not tested
  7. Inject with PyRun_SimpleFileEx For READY project: [Hidden Content]"
  8. for syserr; EterBase/Debug.cpp This function: void TraceError(const char* c_szFormat, ...) Comment or remove all codes in this function for flag; Is easily possible with cmd ACMD(do_quest_flag_test){ ch->SetQuestFlag("questname.flag", value); } ACMD (do_quest_flag_test); { "quest_flag_test", do_quest_flag_test, 0, POS_DEAD, GM_PLAYER }, like this and call in python part net.SendChatPacket("/quest_flag_test")
  9. game.set_event_flag("arena_potion_limit_count", 1)
  10. This good idea thanks, Added as alternative way
  11. local query = mysql_query("SELECT key_testsv FROM account.account WHERE id = '"..pc.get_account_id().."' LIMIT 1")
  12. Search def Destroy(self): add it under self.hpPercenttxt = None Search def ResetTargetBoard(self): Find self.hpGauge.Hide() add it under self.hpPercenttxt.Hide()
  13. Method 1) Enigma plugin [Hidden Content] [Hidden Content] Dll version [Hidden Content] [Hidden Content] Method 2(Alternative way)) Enigma plugin [Hidden Content] [Hidden Content] Dll version [Hidden Content] [Hidden Content]
  14. Yes possibly crc check very easy bypass therefore I added size option Btw If you need crc getter tool I recommend this [Hidden Content]
  15. UserInterface/CheckLatestFiles.cpp Select all codes and change with this #include "StdAfx.h" #if defined(CHECK_LATEST_DATA_FILES) #include "CheckLatestFiles.h" #include "resource.h" static struct SCHECKFILELIST { const char* szFileName; DWORD dwCRC32; ULONGLONG ullSize; } s_astFileHashList[] = { // filename crc(dword) size(ull)[optional] { "errorlog.txt", 0xf7c257a0, 135 }, { "file1.py", 0xf15468a0, 169 }, { "file.epk", 0xf7685410, 465 } //etc. }; static bool gs_bQuit = false; bool CheckLatestFiles_PollEvent( void ) { return gs_bQuit; } int GetFileSize(char* FileName) { HANDLE hFile = CreateFileA(FileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); return GetFileSize(hFile, NULL); } inline bool is_file_exist(const std::string& name) { struct stat buffer; return (stat(name.c_str(), &buffer) == 0); } // 데이타 파일 CRC32 값 검사하기 //size control added bool CheckFileHash( const char* szFileName, DWORD dwCRC32, ULONGLONG ullFileSize = NULL) { char szMessage[256]; if (!is_file_exist(szFileName)) { _snprintf(szMessage, sizeof(szMessage)/sizeof(szMessage[0])-1, ApplicationStringTable_GetStringz(IDS_ERR_CANNOT_READ_FILE, "ERR_CANNOT_READ_FILE"), szFileName); ApplicationSetErrorString(szMessage); return false; } else { DWORD dwLocalCRC32 = GetFileCRC32(szFileName); if (dwCRC32 != dwLocalCRC32) { _snprintf(szMessage, sizeof(szMessage)/sizeof(szMessage[0])-1, ApplicationStringTable_GetStringz(IDS_ERR_NOT_LATEST_FILE, "ERR_NOT_LATEST_FILE"), szFileName); ApplicationSetErrorString(szMessage); return false; } else { int ullLocalSize = GetFileSize(szFileName); if ( ullFileSize) { if (ullLocalSize != ullFileSize) { ApplicationSetErrorString(("%s size not valid", szFileName)); return false; } } } } return true; } UINT CALLBACK CheckLatestFilesEntry(void * pThis) { ::Sleep( 500 ); for( int i=0; s_astFileHashList[i].szFileName; i++ ) { if(s_astFileHashList[i].ullSize) { if(!CheckFileHash(s_astFileHashList[i].szFileName, s_astFileHashList[i].dwCRC32, s_astFileHashList[i].ullSize)){ gs_bQuit = true; break; } } else { if(!CheckFileHash(s_astFileHashList[i].szFileName, s_astFileHashList[i].dwCRC32)){ gs_bQuit = true; break; } } } return true; } bool CheckLatestFiles( void ) { unsigned int uThreadID = 0; HANDLE hThread = (HANDLE) _beginthreadex(NULL, 0, CheckLatestFilesEntry, NULL, 0, &uThreadID); ::SetThreadPriority(hThread, THREAD_PRIORITY_LOWEST); return true; } #endif Now change or add { "errorlog.txt", 0xf7c257a0, 135 }, { "file1.py", 0xf15468a0, 169 }, { "file.epk", 0xf7685410, 465 } This list according to yourself(Size is optional) Now open Locale_inc.h #define CHECK_LATEST_DATA_FILES and add this line
  16. D​irect log is dangerous so have potential sql injection risk
  17. M2 Download Center Download Here ( Internal ) Tutorial: PythonNetworkStreamModule.cpp Search: PyObject* netSendMessengerAddByNamePacket(PyObject* poSelf, PyObject* poArgs) Add it upper: PyObject* netSendHackPacket(PyObject* poSelf, PyObject* poArgs) { char * szMsg; if (!PyTuple_GetString(poArgs, 0, &szMsg)) return Py_BuildException(); CPythonNetworkStream& rns=CPythonNetworkStream::Instance(); rns.__SendHack(szMsg); return Py_BuildNone(); } Search: { "RegisterErrorLog", netRegisterErrorLog, METH_VARARGS }, Add it under: { "HackReport", netSendHackPacket, METH_VARARGS }, PythonNetworkStream.h Search: bool __SendHack(const char* c_szMsg); Add it upper: public: Usage: Python: net.HackReport("explanation_in_here") C++: Without Client Source: void SendReport(char* why){ PyObject* args = PyTuple_New(1); PyTuple_SetItem(args, 0, PyString_FromString(why)); PyObject* ret = PyObject_Call(PyObject_GetAttrString(PyImport_ImportModule("net"), "HackReport"), args, NULL); Py_XDECREF(ret); Py_XDECREF(args); } SendReport("explanation_in_here"); Client Source: #include "PythonNetworkStream.h" CPythonNetworkStream netStream; netStream.__SendHack("explanation_in_here");
  18. this mainline branch generic bug (I dont have any idea for other branchs)
×
×
  • 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.