anonyym 0 Posted September 6, 2015 Share Posted September 6, 2015 Hello, in this topic https://metin2dev.org/board/index.php?/topic/272-collection-short-guides-and-tips/ it is presented how to check the launcher name from the game source. My question is if it's possible to check the launcher size? Link to comment Share on other sites More sharing options...
Premium Galet 514 Posted September 6, 2015 Premium Share Posted September 6, 2015 Yeah you can use a CRC32 / MD5 check too Link to comment Share on other sites More sharing options...
Active Member Koray 2011 Posted September 6, 2015 Active Member Share Posted September 6, 2015 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 2 Link to comment Share on other sites More sharing options...
MORTE 79 Posted September 6, 2015 Share Posted September 6, 2015 thanks Link to comment Share on other sites More sharing options...
anonyym 0 Posted September 7, 2015 Author Share Posted September 7, 2015 Thank you! Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now