I know that this is not a good way of protection and can easily pass over it, and that's why I recommend not to use, but some people will probably be helpful.
Perhaps the code is less messy and is not exactly perfect, I did this 2 years ago for a server of mine and work perfectly last time.
Perhaps some people ask for money md5 check
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
etc and in 2017, everything is free on the internet, thousands of similar functions on Google.If yours does not you like it and use it or think it's a crappy code are available to close this page and move over, this is only for people who needed it.
TR:
Bunun iyi bir koruma olmadığını ve kolayca geçilebileceğini biliyorum bu yüzden kullanmayı önermem,ancak bazıları için lazım olabilir.
Belki kodlar düzgün ve dağınık olabilir,2 yıl önce bunu bir sunucu için yapmıştım ve düzgün bir şekilde çalışıyor.
Yıl olmuş 2017 bazı insanlar bunu para ile satıyorlar,Google amcadan binlercesini bulabilirsiniz.
Eğer bu kodların kötü ve işe yaramaz olduğunu düşünüyorsanız konudan çıkabilirsiniz,bu konuyu arayanlar için paylaşıyorum.
Metin2 Server Geliştirme Sürecinde MD5 Dosyalarının Kontrolü
Metin2 özel sunucularında C++ tabanlı sistemler üzerinde çalışan geliştiriciler, sunucu güvenliği ve dosya bütünlüğü açısından MD5 checksum kontrolleri yapmalıdır. Bu işlem, dosyaların manipüle edilip edilmediğini anlamada kritik rol oynar. Özellikle game ve auth sunucularında çalışan çekirdek source dosyaları için bu kontrol oldukça önemlidir.
MD5 Nedir?
MD5 (Message Digest Algorithm 5), belirli bir veri kümesinden sabit uzunlukta benzersiz bir 'checksum' üretir. Bu checksum sayesinde dosyanın içeriğinde değişiklik olup olmadığı anlaşılır. Eğer bir dosya değiştirilirse, üretilen MD5 değeri de değişir. Bu nedenle, source edit süreçlerinde veya client src dosyalarının doğrulanmasında MD5 karşılaştırması yapılır.
C++ ile MD5 Kontrolü Nasıl Yapılır?
C++ dilinde MD5 hesaplama, genellikle OpenSSL kütüphanesi ile yapılır. Ancak bazı geliştiriciler kendi küçük algoritmalarını da yazabilir. Aşağıda örnek bir fonksiyon gösterilmiştir:
Neden MD5 Kontrolü Gereklidir?
Metin2 özel sunucularında core dosyaların bütünlüğünü korumak için MD5 kontrol mekanizmaları hayati öneme sahiptir. Sunucuya yüklenen herhangi bir pack dosyasının doğruluğu kontrol edilmelidir. Ayrıca, db core ve game core dosyalarında yapılan küçük değişiklikler bile sistemi tehlikeye atabilir. Bu yüzden, dosyaların orijinalliği kontrol edilmelidir.
Olası Güvenlik Açıkları
Yanlış yapılandırılmış bir MD5 karşılaştırma sistemi, saldırganların zararlı kodları sisteme sokmasına izin verebilir. Bu nedenle,_checksum karşılaştırması doğrudan güvenilir bir kaynaktan yapılmalıdır. Martysama gibi deneyimli geliştiriciler, bu tür kontrolleri ayrı ayrı modüllerde yöneterek sistemi daha güvenli hale getirebilirler.
Python GUI ile Entegrasyon
Py GUI veya Py Root tabanlı sistemlerle entegre edilen MD5 kontrol mekanizmaları, yönetim kolaylığı sağlar. Örneğin, bir UIScript üzerinden dosya yükleme sırasında otomatik olarak MD5 karşılaştırması yapılabilir. Böylece kullanıcılar tarafından gönderilen dosyaların güvenliği sağlanır.
Sonuç
Metin2 özel sunucu geliştirme sürecinde, dosya doğrulama mekanizmaları temel güvenlik adımlarındandır. C++ ile yazılmış MD5 kontrol altyapısı, hem game hem de auth sunucularında büyük avantaj sağlar. Doğru uygulandığında, sistem güvenliğini ciddi şekilde artırabilir. Metin2Lobby olarak bu tür sistemleri geliştirmek, topluluk için büyük değer taşır.
Checking MD5 Files in Metin2 Server Development
Developers working on C++-based systems in Metin2 private servers should implement MD5 checksum checks to ensure server security and file integrity. This process plays a critical role in identifying whether files have been tampered with. It is especially important for core source files running on game and auth servers.
What is MD5?
MD5 (Message Digest Algorithm 5) generates a unique fixed-length 'checksum' from a given dataset. This checksum helps determine if a file's content has changed. If a file is modified, its generated MD5 value will also change. Therefore, MD5 comparisons are used during source edit processes or to validate client src files.
How to Perform MD5 Checks in C++?
MD5 calculation in C++ is typically done using the OpenSSL library. However, some developers may write their own lightweight algorithms. Below is an example function:
Why is MD5 Checking Required?
MD5 verification mechanisms are vital for maintaining the integrity of core files in Metin2 private servers. The authenticity of any uploaded pack file must be verified. Additionally, even small changes made to db core and game core files can compromise the entire system. Thus, ensuring file authenticity is essential.
Potential Security Vulnerabilities
An incorrectly configured MD5 comparison system can allow attackers to inject malicious code into the system. Therefore, checksum comparisons should always be performed against a trusted source. Experienced developers like Martysama manage such checks in separate modules to make the system more secure.
Integration with Python GUI
MD5 verification systems integrated with Py GUI or Py Root-based systems offer easier management. For example, an automatic MD5 check can be triggered during file upload via a UIScript. This ensures the security of user-submitted files.
Conclusion
In Metin2 private server development, file validation mechanisms are fundamental security steps. An MD5 verification infrastructure written in C++ provides significant advantages on both game and auth servers. When correctly implemented, it can significantly enhance system security. At Metin2Lobby, developing such systems holds great value for the community.
Belki kodlar düzgün ve dağınık olabilir,2 yıl önce bunu bir sunucu için yapmıştım ve düzgün bir şekilde çalışıyor.
Yıl olmuş 2017 bazı insanlar bunu para ile satıyorlar,Google amcadan binlercesini bulabilirsiniz.
Eğer bu kodların kötü ve işe yaramaz olduğunu düşünüyorsanız konudan çıkabilirsiniz,bu konuyu arayanlar için paylaşıyorum.
- <li data-xf-list-type="ul">
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız! Giriş yap veya üye ol.
Kod:
/* * Go in folder Svn/Client/UserInterface/ and add this file: * Download: https://mega.nz/#!vBw1UITR!8rJ1RbFVa47eIVHXm3HTtfRkY_iTFg_eaXgdIzMdI2A * If you want to obtaining md5 from files, you need only to drag file on box, and will show you "Current file MD5 checksum value". Download: http://www.winmd5.com/download/winmd5free.zip */ //@Svn/Client/UserInterface/Locale_inc.h //Add where you want: #define ENABLE_CHECK_FILES_MD5 //@Svn/Client/UserInterface/UserInterface.cpp //1.) Search for: #include "Version.h" //2.) Add bellow: #ifdef ENABLE_CHECK_FILES_MD5 #include "md5.h" #include <windows.h> #endif //1.) Search for: static const char * sc_apszPythonLibraryFilenames[*] = { [........] }; //2.) Add after: #ifdef ENABLE_CHECK_FILES_MD5 #define MAX_ROWS_MD5 21 static char * ar_szMD5FileNames[MAX_ROWS_MD5][2] = { // Example of list: { "lib/__future__.pyc", "d2505c6e64dc44a1745dda0905f4e787" }, { "lib/copy_reg.pyc", "5e996d35b598676b253dd25fa3809ef2" }, { "lib/linecache.pyc", "c4c28529b05b4093f629fb7b23603cd2" }, { "lib/ntpath.pyc", "966048f390a65bebf60f912845441110" }, { "lib/os.pyc", "9e1e72faaafcde16dfd0e643a31f0b74" }, { "lib/site.pyc", "8336371539a459e72d7110f0cb1ed84f" }, { "lib/stat.pyc", "3dc2d3d11ba4c668a0097fbd631c7be6" }, { "lib/string.pyc", "39c29074226b2196e7f13ce93560d3d0" }, { "lib/traceback.pyc", "009e6647dfac211b6e69c6b3f1ed5600" }, { "lib/types.pyc", "2bff75340aa1d94b88bfc7915a291564" }, { "lib/UserDict.pyc", "aabdd94dfe3a1b0092f0a414a935c091" }, { "miles/mssdsp.flt", "cb71b1791009eca618e9b1ad4baa4fa9" }, { "miles/msssoft.m3d", "bdc9ad58ade17dbd939522eee447416f" }, { "miles/mssa3d.m3d", "e089ce52b0617a6530069f22e0bdba2a" }, { "miles/mss32.dll", "6400e224b8b44ece59a992e6d8233719" }, { "pack/Index", "8823ca827dfc980798856e97f3568cef" }, { "pack/root.eix", "ce13b7c96f725b7d7c39cbe1ae2f8b4d" }, { "pack/ETC.eix", "7c0b756d079a9c76a220a724b9594eeb" }, { "pack/locale_en.eix", "5b1aea18b89330481e16eca94673951c" }, { "pack/uiscript.eix", "d211c0a83ff2c771946d73554916bd9a" }, { "python27.dll", "d219c0a8aff2c771946d73554916bd9a" } /* Unlimited files */ }; #endif //1.) Search for: bool __IsLocaleVersion(LPSTR lpCmdLine) { return (strcmp(lpCmdLine, "--perforce-revision") == 0); } //2.) Add bellow: #ifdef ENABLE_CHECK_FILES_MD5 void CheckMD5Filenames() { MD5 md5; for (int it = 0; it < _countof(ar_szMD5FileNames); it++) { if (strcmp(md5.digestFile(ar_szMD5FileNames[it][0]), ar_szMD5FileNames[it][1])) { char szBuf[512 + 1]; snprintf(szBuf, sizeof(szBuf), "A file %s has been modified, please update autopatcher.", ar_szMD5FileNames[it][0]); MessageBoxA(NULL, szBuf, "#Metin2", NULL); exit(0); } } } #endif //1.) Search for: if (strstr(lpCmdLine, "--hackshield") != 0) return 0; //2.) Add after: #ifdef ENABLE_CHECK_FILES_MD5 CheckMD5Filenames(); #endif
Metin2 Server Geliştirme Sürecinde MD5 Dosyalarının Kontrolü
Metin2 özel sunucularında C++ tabanlı sistemler üzerinde çalışan geliştiriciler, sunucu güvenliği ve dosya bütünlüğü açısından MD5 checksum kontrolleri yapmalıdır. Bu işlem, dosyaların manipüle edilip edilmediğini anlamada kritik rol oynar. Özellikle game ve auth sunucularında çalışan çekirdek source dosyaları için bu kontrol oldukça önemlidir.
MD5 Nedir?
MD5 (Message Digest Algorithm 5), belirli bir veri kümesinden sabit uzunlukta benzersiz bir 'checksum' üretir. Bu checksum sayesinde dosyanın içeriğinde değişiklik olup olmadığı anlaşılır. Eğer bir dosya değiştirilirse, üretilen MD5 değeri de değişir. Bu nedenle, source edit süreçlerinde veya client src dosyalarının doğrulanmasında MD5 karşılaştırması yapılır.
C++ ile MD5 Kontrolü Nasıl Yapılır?
C++ dilinde MD5 hesaplama, genellikle OpenSSL kütüphanesi ile yapılır. Ancak bazı geliştiriciler kendi küçük algoritmalarını da yazabilir. Aşağıda örnek bir fonksiyon gösterilmiştir:
Kod:
std::string calculateMD5(const std::string& filePath) { [BR][/BR] // Dosyayı aç ve oku[BR][/BR] std::ifstream file(filePath, std::ios::binary);[BR][/BR] if (!file.is_open()) return "";[BR][/BR][BR][/BR] unsigned char digest[MD5_DIGEST_LENGTH];[BR][/BR] MD5_CTX context;[BR][/BR] MD5_Init(&context);[BR][/BR][BR][/BR] char buffer[1024];[BR][/BR] while (file.read(buffer, 1024) || file.gcount() > 0) {[BR][/BR] MD5_Update(&context, buffer, file.gcount());[BR][/BR] }[BR][/BR][BR][/BR] MD5_Final(digest, &context);[BR][/BR][BR][/BR] std::stringstream ss;[BR][/BR] for (int i = 0; i < MD5_DIGEST_LENGTH; ++i) {[BR][/BR] ss << std::hex << std::setw(2) << std::setfill('0') << (int)digest[i];[BR][/BR] }[BR][/BR] return ss.str();[BR][/BR}
Neden MD5 Kontrolü Gereklidir?
Metin2 özel sunucularında core dosyaların bütünlüğünü korumak için MD5 kontrol mekanizmaları hayati öneme sahiptir. Sunucuya yüklenen herhangi bir pack dosyasının doğruluğu kontrol edilmelidir. Ayrıca, db core ve game core dosyalarında yapılan küçük değişiklikler bile sistemi tehlikeye atabilir. Bu yüzden, dosyaların orijinalliği kontrol edilmelidir.
Olası Güvenlik Açıkları
Yanlış yapılandırılmış bir MD5 karşılaştırma sistemi, saldırganların zararlı kodları sisteme sokmasına izin verebilir. Bu nedenle,_checksum karşılaştırması doğrudan güvenilir bir kaynaktan yapılmalıdır. Martysama gibi deneyimli geliştiriciler, bu tür kontrolleri ayrı ayrı modüllerde yöneterek sistemi daha güvenli hale getirebilirler.
Python GUI ile Entegrasyon
Py GUI veya Py Root tabanlı sistemlerle entegre edilen MD5 kontrol mekanizmaları, yönetim kolaylığı sağlar. Örneğin, bir UIScript üzerinden dosya yükleme sırasında otomatik olarak MD5 karşılaştırması yapılabilir. Böylece kullanıcılar tarafından gönderilen dosyaların güvenliği sağlanır.
Sonuç
Metin2 özel sunucu geliştirme sürecinde, dosya doğrulama mekanizmaları temel güvenlik adımlarındandır. C++ ile yazılmış MD5 kontrol altyapısı, hem game hem de auth sunucularında büyük avantaj sağlar. Doğru uygulandığında, sistem güvenliğini ciddi şekilde artırabilir. Metin2Lobby olarak bu tür sistemleri geliştirmek, topluluk için büyük değer taşır.
Checking MD5 Files in Metin2 Server Development
Developers working on C++-based systems in Metin2 private servers should implement MD5 checksum checks to ensure server security and file integrity. This process plays a critical role in identifying whether files have been tampered with. It is especially important for core source files running on game and auth servers.
What is MD5?
MD5 (Message Digest Algorithm 5) generates a unique fixed-length 'checksum' from a given dataset. This checksum helps determine if a file's content has changed. If a file is modified, its generated MD5 value will also change. Therefore, MD5 comparisons are used during source edit processes or to validate client src files.
How to Perform MD5 Checks in C++?
MD5 calculation in C++ is typically done using the OpenSSL library. However, some developers may write their own lightweight algorithms. Below is an example function:
Kod:
std::string calculateMD5(const std::string& filePath) { [BR][/BR] // Open and read the file[BR][/BR] std::ifstream file(filePath, std::ios::binary);[BR][/BR] if (!file.is_open()) return "";[BR][/BR][BR][/BR] unsigned char digest[MD5_DIGEST_LENGTH];[BR][/BR] MD5_CTX context;[BR][/BR] MD5_Init(&context);[BR][/BR][BR][/BR] char buffer[1024];[BR][/BR] while (file.read(buffer, 1024) || file.gcount() > 0) {[BR][/BR] MD5_Update(&context, buffer, file.gcount());[BR][/BR] }[BR][/BR][BR][/BR] MD5_Final(digest, &context);[BR][/BR][BR][/BR] std::stringstream ss;[BR][/BR] for (int i = 0; i < MD5_DIGEST_LENGTH; ++i) {[BR][/BR] ss << std::hex << std::setw(2) << std::setfill('0') << (int)digest[i];[BR][/BR] }[BR][/BR] return ss.str();[BR][/BR}
Why is MD5 Checking Required?
MD5 verification mechanisms are vital for maintaining the integrity of core files in Metin2 private servers. The authenticity of any uploaded pack file must be verified. Additionally, even small changes made to db core and game core files can compromise the entire system. Thus, ensuring file authenticity is essential.
Potential Security Vulnerabilities
An incorrectly configured MD5 comparison system can allow attackers to inject malicious code into the system. Therefore, checksum comparisons should always be performed against a trusted source. Experienced developers like Martysama manage such checks in separate modules to make the system more secure.
Integration with Python GUI
MD5 verification systems integrated with Py GUI or Py Root-based systems offer easier management. For example, an automatic MD5 check can be triggered during file upload via a UIScript. This ensures the security of user-submitted files.
Conclusion
In Metin2 private server development, file validation mechanisms are fundamental security steps. An MD5 verification infrastructure written in C++ provides significant advantages on both game and auth servers. When correctly implemented, it can significantly enhance system security. At Metin2Lobby, developing such systems holds great value for the community.
