- Katılım
- 16 Tem 2019
- Konular
- 715
- Mesajlar
- 3,551
- Çözüm
- 47
- Online süresi
- 6mo 20d
- Reaksiyon Skoru
- 2,110
- Altın Konu
- 34
- Başarım Puanı
- 309
- MmoLira
- 19,559
- DevLira
- 122
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
UserInterface/PythonApplication.cpp
İlgili kısmı bulun ve altına şu kodu ekleyin:
Daha sonra CMSWindow::Create(...) altına şu satırları ekleyin:
root/prototype.py
Arat:
Değiştir:
Patch dosyasını indirirken patcher’da doğrulama yapın:
Aksi takdirde "USE_PATCHER" hatası alınır.
İlgili kısmı bulun ve altına şu kodu ekleyin:
C++:
#include <fstream>
#include <ctime>
bool IsClientNameValid()
{
char szAppPath[MAX_PATH] = "";
std::string strAppName;
if (GetModuleFileNameA(NULL, szAppPath, MAX_PATH) == 0)
return false;
strAppName = szAppPath;
size_t pos = strAppName.find_last_of("\\/");
if (pos != std::string::npos)
strAppName = strAppName.substr(pos + 1);
std::transform(strAppName.begin(), strAppName.end(), strAppName.begin(), ::tolower);
return strAppName == "metin2client.bin";
}
void LogInvalidClientStart()
{
std::ofstream logFile("client_protect.log", std::ios::app);
if (!logFile)
return;
std::time_t t = std::time(nullptr);
char timeBuf[64];
std::strftime(timeBuf, sizeof(timeBuf), "%Y-%m-%d %H:%M:%S", std::localtime(&t));
logFile << "[" << timeBuf << "] UYARI: Client hatalı isimle çalıştırıldı.\n";
}
Daha sonra CMSWindow::Create(...) altına şu satırları ekleyin:
C++:
if (!IsClientNameValid()) {
LogInvalidClientStart();
SET_EXCEPTION(USE_PATCHER);
return false;
}
root/prototype.py
Arat:
C++:
elif "USE_PATCHER" == msg:
dbg.LogBox("Oyun dosyası hatalı!\r\nLütfen Patcher.exe'yi çalıştırarak oyunu başlatın.")
Değiştir:
C++:
elif "USE_PATCHER" == msg:
dbg.LogBox("Client yanlış isimle çalıştırıldı!\r\nLütfen sadece 'Patcher.exe' aracılığıyla oyunu başlatın.\n\n"
"Bu güvenlik önlemi, oyun bütünlüğünü korumak için uygulanmıştır.\n"
"Güncelleme yapmayı unutmayın.")
Patch dosyasını indirirken patcher’da doğrulama yapın:
C++:
// patcher.c
ShellExecute(NULL, "open", "metin2client.bin", NULL, NULL, SW_SHOW);
Aksi takdirde "USE_PATCHER" hatası alınır.
- Katılım
- 2 Ara 2024
- Konular
- 186
- Mesajlar
- 1,981
- Çözüm
- 8
- Online süresi
- 5mo 13d
- Reaksiyon Skoru
- 1,495
- Altın Konu
- 1
- Başarım Puanı
- 206
- MmoLira
- 12,405
- DevLira
- 36
Eline saglık
- Katılım
- 26 Tem 2023
- Konular
- 451
- Mesajlar
- 6,352
- Çözüm
- 28
- Online süresi
- 2mo 26d
- Reaksiyon Skoru
- 3,428
- Altın Konu
- 133
- Başarım Puanı
- 249
- MmoLira
- 37,539
- DevLira
- 12
Eline sağlık
- Katılım
- 17 Eki 2016
- Konular
- 129
- Mesajlar
- 2,413
- Çözüm
- 86
- Online süresi
- 2mo 11d
- Reaksiyon Skoru
- 1,291
- Altın Konu
- 1
- Başarım Puanı
- 258
- MmoLira
- 1,934
- DevLira
- 12
Paylaşım için teşekkürler, kullanacak arkadaşlar için hata mesajlarında string kullanmak biraz sakıncalı sadece çünkü x86dbg gibi bir programla binaryde stringler aratıldığında direk çıkacaktır, runtime da stringleri oluşturabilir, char array kullanabilir yada sunucudan çekebilirsiniz 

- Katılım
- 16 Tem 2019
- Konular
- 715
- Mesajlar
- 3,551
- Çözüm
- 47
- Online süresi
- 6mo 20d
- Reaksiyon Skoru
- 2,110
- Altın Konu
- 34
- Başarım Puanı
- 309
- MmoLira
- 19,559
- DevLira
- 122
böyle ne dersin?Paylaşım için teşekkürler, kullanacak arkadaşlar için hata mesajlarında string kullanmak biraz sakıncalı sadece çünkü x86dbg gibi bir programla binaryde stringler aratıldığında direk çıkacaktır, runtime da stringleri oluşturabilir, char array kullanabilir yada sunucudan çekebilirsiniz![]()
void ShowClientNameError()
{
const char msg[] = {
'C', 'l', 'i', 'e', 'n', 't', ' ',
'y', 'a', 'n', 'l', 'ı', 'ş', ' ',
'i', 's', 'i', 'm', 'l', 'e', ' ',
'ç', 'a', 'l', 'ı', 'ş', 't', 'ı', 'r', 'ı', 'l', 'd', 'ı', '!', '\0'
};
dbg.LogBox(msg);
}
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 9
- Görüntüleme
- 443
- Cevaplar
- 9
- Görüntüleme
- 1K
- Cevaplar
- 33
- Görüntüleme
- 2K









