Code:
void CServerInfo::Load(std::string file)
{
char ver[5];
char szTemp[250];
LPSTR filedec = "/ServerInfo.bmd";
FILE* hFile = fopen(file.c_str(), "rb");
if (!hFile)
{
MessageBoxA(0, "ServerInfo.bmd is missing", "ERROR", 0);
ExitProcess(0);
}
fseek(hFile, 0, SEEK_END);
int size = ftell(hFile);
fseek(hFile, 0, SEEK_SET);
BYTE* buf = new BYTE[size];
fread(buf, 1, size, hFile);
fclose(hFile);
for (int i = 0; i < size; i++)
{
buf[i] ^= xorKey[i % 4];
}
std::ofstream decFile;
decFile.open(filedec);
decFile << buf;
decFile.close();
GetPrivateProfileStringA("Connection", "IP", "10.0.0.1", szTemp, 250, filedec);
m_Ip = std::string(szTemp);
m_Port = GetPrivateProfileInt("Connection", "Port", 44405, filedec);
m_ChatServerPort = GetPrivateProfileIntA("Connection","ChatPort", 56960, filedec);
GetPrivateProfileStringA("Main", "Version", "1.05.25", szTemp, 8, filedec);
sscanf(szTemp, "%c.%c%c.%c%c", &ver[0], &ver[1], &ver[2], &ver[3], &ver[4]);
for (int i = 0; i < 5; i++)
{
ver[i] = ver[i] + (i + 1);
}
memcpy(m_Version, ver, 5);
GetPrivateProfileStringA("Main", "Serial", "PoweredByIGCN800", szTemp, 17, filedec);
memcpy(m_Serial, szTemp, 16);
m_UseLauncher = GetPrivateProfileIntA("Launcher", "Enabled", 0, filedec);
GetPrivateProfileStringA("Launcher", "ExeName", "Launcher.exe", szTemp, 255, filedec);
m_LauncherFile = std::string(szTemp);
m_AllowXShop = GetPrivateProfileIntA("Gameplay", "SellXShopQuestItems", 0, filedec);
m_Charset = GetPrivateProfileIntA("Gameplay", "CodePage", 0xFDE9, filedec);/** 1258vn0x4B0 0x4E4 */
m_BlockVirtualMachine = GetPrivateProfileInt("Gameplay", "BlockVirtualMachine", 0, filedec);
m_UsePatcher = GetPrivateProfileIntA("Patcher", "Enabled", 0, filedec);
GetPrivateProfileStringA("Patcher", "ExeName", "Patcher.exe", szTemp, 255, filedec);
m_PathcherFile = std::string(szTemp);
DeleteFileA(filedec);
}
and change IP in ServerInfo.bmd