Öncelikle herkese merhabalar içinde c# kelimesi geçtiği için konu yeri olarak burayı uygun buldum bu konu c sharp ve visual üzerinde uygulama geliştiren ve bu konudan haberi olmayan bir çok kişiyi ilgilendiriyor kendi oyunları veya her hangi bir işlem için visual studio üzerinde uygulama geliştiren kardeşlerim - abilerim bu konuyu dikkatli okuyun lütfen bilginiz olabilir veya olmayabilir
Uygulama geliştirirken visual studio da sabitler tanımlamamız gerekir en yaygını Dim dir örnek vermek gerekirse
şeklinde örnek vereyim bu sizlere çok sıkıntı çıkarmayacaktır lakin uygulamanızda mysql kullanıyor iseniz
şeklinde bir dim tanımlar ve bu connection üzerinden işlem yaparsınız buraya kadar sorun yoktu ancak
decompiler ve reflector adı verdiğimiz kötü amaçlı uygulamalarda tanımladığımız bu sabitler 10 saniye içerisinde buluna bilir aşağıdaki resimde bir örnek vereyim
Şifremi ben gizledim ancak uygulama benim kadar insaflı olmayacaktır bu tarzda bir çok uygulama var sizin ne heveslerle yaptığınız uygulamaları 10 saniyede rezil edebilir
şimdi bu durumda akılda oluşan 2 soru var 1. si bu sadece sabitler için mi geçerli
2. si ne yapmam gerekli
İlk sorunun cevabı hayır! sadece sabitler değil uygulama üzerinde tanımladığınız sub'lar event'ler ve class'lar modül'ler v.b bir çok veriye erişim sağlanabilir.
Peki ya ne yapacaz?
Bu tip işlemlerden korunmak için uygulamanızı SmartAssembly6 isimli uygulamayla şifreleyebilirsiniz
bu 1. yöntemimizdi bunu zaten yapın ancak SOA (Servis Odaklı Mimari) yi iyi araştırmalısınız yani burdaki asıl amacımız mysql şifresini uygulama içerisinde
saklamamak php deki yöntem gibi bir configurasyon dosyası oluşturup bunu kendi sunucunuz üzerinde saklamaktır.
Konuya gösterilen ilgi oranına bakılarak gerekli eğitim konuları açılabilir.
Bu konuda değinmek istediğim bukadardı sorun ve sorularınızı konu altına yorum olarak yazarsanız müsait olduğum taktirde elimden geldiği kadar yardımcı olmaya çalışırım.
Extra//
Soru 1: Bu sadece visual basic ve c sharp içinmi geçerli?
Cevap1: Hayır açıkçası sabitlerle tanımladığımız her türlü veri risk teşik etmektedir isterseniz c++ isterseniz en zor dillerden biri olan assembly kullanın
Soru2: Tanımımızı şifreli olarak yazsak ne olur önreğin md5
Cevap2: Md5 olsa bile sql inject ile sunucunuza erişim sağlanabilir.
Soru3: Konfigurasyon dosyası nedir?
Cevap3: Konfigurasyon dosyasının kısa tanımı özel bilgilerinizi saklayabileceğiniz sertleştirilmiş dosyalardır (XML,Binary,Json)
Soru4: Konfigurasyon dosyasını nasıl kullanabilirim?
Cevap4: .net in bize sağladığı bir çok yöntem vardır bunladan biriside XML'dir xml olarak veri saklamak için
Soru5: Kendimizi uyanık zannedip sabitleri class libary içerisinde tanımlayıp bu projeye dahil etsek ne olur?
Cevap5: Hani eskilerden kalma bir gelenek vardır ya hırsız evi dolu zannetsin diye salonun ışığını açık bırakmak işte aynı yöntemin yazılıma uyarlanmışıdır
bu yöntem sunucu verilerinize ulaşılmasını 20 saniye daha uzatacaktır 
// Konuda 1 harf bile alıntı değildir hepsi kendi tecrübelerimizden alıntıdır
C# ve Visual Basic Hakkında Önemli Uyarı
Metin2 özel sunucu geliştirme süreçlerinde sıklıkla tercih edilen dillerden birisi değildir C# veya Visual Basic. Bu iki dil özellikle masaüstü uygulamalar, Windows Forms, .NET Framework projeleri gibi alanlarda güçlü bir rol oynar. Ancak Metin2 özel sunucu dünyasında ana diller genellikle C++, Python ve buna benzer sistem dilleridir. Bu nedenle C# veya VB.NET tabanlı bir proje geliştirmek isterseniz, mevcut sistemlerle entegrasyon konusunda ciddi sorunlar yaşayabilirsiniz.
Metin2 özel sunucularında genellikle oyun sunucusu (game server), kimlik doğrulama sunucusu (auth server) gibi yapılar C++ dili ile yazılmaktadır. Bu dille yazılmış olan kaynak kodlar (SRC), doğrudan oyunun çekirdek mantığına erişim sağlar. Öte yandan Python, sunucu tarafında yardımcı betikler, GUI arayüzler, veritabanı işlemleri ve bazı sistemler için kullanılır. Özellikle uiscript ve py root gibi yapılar Python tabanlıdır. Bu nedenle, Metin2 özel sunucu geliştirme yolculuğunuzda C++ ve Python bilmeniz büyük avantaj sağlar.
C# veya Visual Basic ile Metin2 sistemlerine doğrudan entegre olmak mümkün değildir. Çünkü bu dillerin çalışma ortamı (.NET Framework veya .NET Core) Metin2'nin doğrudan desteklediği sistemler değildir. Sunucu tarafında C# kullanmak isterseniz, mevcut sistemleri komple yeniden yazmak zorunda kalabilirsiniz. Bu da zaman, maliyet ve uyumluluk açısından ciddi dezavantajlar doğurur.
Ancak C# veya VB.NET bilen bir geliştirici, istemci (client) tarafında küçük GUI uygulamaları veya yardımcı araçlar geliştirebilir. Örneğin bir pack aracı, kaynak kod derleme yardımcı programları veya basit yönetim panelleri gibi. Fakat bu tarz uygulamalar doğrudan oyunun çekirdeğini etkilemez; sadece geliştirme sürecini kolaylaştırıcı niteliktedir.
Özetle, Metin2 özel sunucu dünyasında C# veya VB.NET bilgisi doğrudan bir fayda sağlamaz. Geliştirme yapmak isteyenlerin odak noktası C++, Python ve ilgili sistemler olmalıdır. Bu diller, hem mevcut kaynakların anlaşılmasında hem de özgün sistemlerin geliştirilmesinde temel taşları oluşturur. Martysama ve diğer gelişmiş sistemler de bu dillere dayanmaktadır. Bu nedenle, C# veya VB.NET bilgisi olan geliştiricilerin, Metin2 dünyasında üretmek istiyorsa C++ ve Python öğrenmeleri büyük önem taşır.
Important Warning About C# and Visual Basic
C# or Visual Basic are not commonly preferred languages in Metin2 private server development processes. These two languages play a strong role especially in desktop applications, Windows Forms, .NET Framework projects, etc. However, in the world of Metin2 private servers, main languages are usually C++, Python, and similar system languages. Therefore, if you try to develop a project based on C# or VB.NET, you may encounter serious integration issues with existing systems.
In Metin2 private servers, structures such as the game server and authentication server are generally written in C++. Source codes (SRC) written in this language provide direct access to the core logic of the game. On the other hand, Python is used for helper scripts, GUI interfaces, database operations, and some systems on the server side. Especially structures like uiscript and py root are Python-based. Therefore, having knowledge of C++ and Python provides great advantages during your Metin2 private server development journey.
It is not possible to directly integrate into Metin2 systems using C# or Visual Basic. Because their runtime environments (.NET Framework or .NET Core) are not supported directly by Metin2. If you attempt to use C# on the server-side, you may have to rewrite the entire system from scratch. This creates significant disadvantages in terms of time, cost, and compatibility.
However, a developer familiar with C# or VB.NET can create small GUI applications or helper tools for the client-side. For example, a pack tool, source compilation helpers, or simple admin panels. However, these types of applications do not directly affect the core of the game; they serve only to ease the development process.
In summary, knowledge of C# or VB.NET does not provide direct benefits in the Metin2 private server world. Those who want to develop should focus on C++, Python, and related systems. These languages form the foundational building blocks both for understanding existing sources and for developing original systems. Advanced systems like Martysama are also built upon these languages. Therefore, developers familiar with C# or VB.NET must learn C++ and Python if they wish to produce within the Metin2 ecosystem.
Uygulama geliştirirken visual studio da sabitler tanımlamamız gerekir en yaygını Dim dir örnek vermek gerekirse
Kod:
Dim size As New Point(441, 444)
şeklinde örnek vereyim bu sizlere çok sıkıntı çıkarmayacaktır lakin uygulamanızda mysql kullanıyor iseniz
Kod:
Dim baglanti As New MySqlConnection("server=serverip; userid=root; password=svsifre; database=tablo; charset=utf8")
decompiler ve reflector adı verdiğimiz kötü amaçlı uygulamalarda tanımladığımız bu sabitler 10 saniye içerisinde buluna bilir aşağıdaki resimde bir örnek vereyim
Şifremi ben gizledim ancak uygulama benim kadar insaflı olmayacaktır bu tarzda bir çok uygulama var sizin ne heveslerle yaptığınız uygulamaları 10 saniyede rezil edebilir
şimdi bu durumda akılda oluşan 2 soru var 1. si bu sadece sabitler için mi geçerli
2. si ne yapmam gerekli
İlk sorunun cevabı hayır! sadece sabitler değil uygulama üzerinde tanımladığınız sub'lar event'ler ve class'lar modül'ler v.b bir çok veriye erişim sağlanabilir.
Peki ya ne yapacaz?
Bu tip işlemlerden korunmak için uygulamanızı SmartAssembly6 isimli uygulamayla şifreleyebilirsiniz
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
bu 1. yöntemimizdi bunu zaten yapın ancak SOA (Servis Odaklı Mimari) yi iyi araştırmalısınız yani burdaki asıl amacımız mysql şifresini uygulama içerisinde
saklamamak php deki yöntem gibi bir configurasyon dosyası oluşturup bunu kendi sunucunuz üzerinde saklamaktır.
Konuya gösterilen ilgi oranına bakılarak gerekli eğitim konuları açılabilir.
Bu konuda değinmek istediğim bukadardı sorun ve sorularınızı konu altına yorum olarak yazarsanız müsait olduğum taktirde elimden geldiği kadar yardımcı olmaya çalışırım.
Extra//
Soru 1: Bu sadece visual basic ve c sharp içinmi geçerli?
Cevap1: Hayır açıkçası sabitlerle tanımladığımız her türlü veri risk teşik etmektedir isterseniz c++ isterseniz en zor dillerden biri olan assembly kullanın
Soru2: Tanımımızı şifreli olarak yazsak ne olur önreğin md5
Cevap2: Md5 olsa bile sql inject ile sunucunuza erişim sağlanabilir.
Soru3: Konfigurasyon dosyası nedir?
Cevap3: Konfigurasyon dosyasının kısa tanımı özel bilgilerinizi saklayabileceğiniz sertleştirilmiş dosyalardır (XML,Binary,Json)
Soru4: Konfigurasyon dosyasını nasıl kullanabilirim?
Cevap4: .net in bize sağladığı bir çok yöntem vardır bunladan biriside XML'dir xml olarak veri saklamak için
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Soru5: Kendimizi uyanık zannedip sabitleri class libary içerisinde tanımlayıp bu projeye dahil etsek ne olur?
Cevap5: Hani eskilerden kalma bir gelenek vardır ya hırsız evi dolu zannetsin diye salonun ışığını açık bırakmak işte aynı yöntemin yazılıma uyarlanmışıdır
// Konuda 1 harf bile alıntı değildir hepsi kendi tecrübelerimizden alıntıdır
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
C# ve Visual Basic Hakkında Önemli Uyarı
Metin2 özel sunucu geliştirme süreçlerinde sıklıkla tercih edilen dillerden birisi değildir C# veya Visual Basic. Bu iki dil özellikle masaüstü uygulamalar, Windows Forms, .NET Framework projeleri gibi alanlarda güçlü bir rol oynar. Ancak Metin2 özel sunucu dünyasında ana diller genellikle C++, Python ve buna benzer sistem dilleridir. Bu nedenle C# veya VB.NET tabanlı bir proje geliştirmek isterseniz, mevcut sistemlerle entegrasyon konusunda ciddi sorunlar yaşayabilirsiniz.
Metin2 özel sunucularında genellikle oyun sunucusu (game server), kimlik doğrulama sunucusu (auth server) gibi yapılar C++ dili ile yazılmaktadır. Bu dille yazılmış olan kaynak kodlar (SRC), doğrudan oyunun çekirdek mantığına erişim sağlar. Öte yandan Python, sunucu tarafında yardımcı betikler, GUI arayüzler, veritabanı işlemleri ve bazı sistemler için kullanılır. Özellikle uiscript ve py root gibi yapılar Python tabanlıdır. Bu nedenle, Metin2 özel sunucu geliştirme yolculuğunuzda C++ ve Python bilmeniz büyük avantaj sağlar.
C# veya Visual Basic ile Metin2 sistemlerine doğrudan entegre olmak mümkün değildir. Çünkü bu dillerin çalışma ortamı (.NET Framework veya .NET Core) Metin2'nin doğrudan desteklediği sistemler değildir. Sunucu tarafında C# kullanmak isterseniz, mevcut sistemleri komple yeniden yazmak zorunda kalabilirsiniz. Bu da zaman, maliyet ve uyumluluk açısından ciddi dezavantajlar doğurur.
Ancak C# veya VB.NET bilen bir geliştirici, istemci (client) tarafında küçük GUI uygulamaları veya yardımcı araçlar geliştirebilir. Örneğin bir pack aracı, kaynak kod derleme yardımcı programları veya basit yönetim panelleri gibi. Fakat bu tarz uygulamalar doğrudan oyunun çekirdeğini etkilemez; sadece geliştirme sürecini kolaylaştırıcı niteliktedir.
Özetle, Metin2 özel sunucu dünyasında C# veya VB.NET bilgisi doğrudan bir fayda sağlamaz. Geliştirme yapmak isteyenlerin odak noktası C++, Python ve ilgili sistemler olmalıdır. Bu diller, hem mevcut kaynakların anlaşılmasında hem de özgün sistemlerin geliştirilmesinde temel taşları oluşturur. Martysama ve diğer gelişmiş sistemler de bu dillere dayanmaktadır. Bu nedenle, C# veya VB.NET bilgisi olan geliştiricilerin, Metin2 dünyasında üretmek istiyorsa C++ ve Python öğrenmeleri büyük önem taşır.
Important Warning About C# and Visual Basic
C# or Visual Basic are not commonly preferred languages in Metin2 private server development processes. These two languages play a strong role especially in desktop applications, Windows Forms, .NET Framework projects, etc. However, in the world of Metin2 private servers, main languages are usually C++, Python, and similar system languages. Therefore, if you try to develop a project based on C# or VB.NET, you may encounter serious integration issues with existing systems.
In Metin2 private servers, structures such as the game server and authentication server are generally written in C++. Source codes (SRC) written in this language provide direct access to the core logic of the game. On the other hand, Python is used for helper scripts, GUI interfaces, database operations, and some systems on the server side. Especially structures like uiscript and py root are Python-based. Therefore, having knowledge of C++ and Python provides great advantages during your Metin2 private server development journey.
It is not possible to directly integrate into Metin2 systems using C# or Visual Basic. Because their runtime environments (.NET Framework or .NET Core) are not supported directly by Metin2. If you attempt to use C# on the server-side, you may have to rewrite the entire system from scratch. This creates significant disadvantages in terms of time, cost, and compatibility.
However, a developer familiar with C# or VB.NET can create small GUI applications or helper tools for the client-side. For example, a pack tool, source compilation helpers, or simple admin panels. However, these types of applications do not directly affect the core of the game; they serve only to ease the development process.
In summary, knowledge of C# or VB.NET does not provide direct benefits in the Metin2 private server world. Those who want to develop should focus on C++, Python, and related systems. These languages form the foundational building blocks both for understanding existing sources and for developing original systems. Advanced systems like Martysama are also built upon these languages. Therefore, developers familiar with C# or VB.NET must learn C++ and Python if they wish to produce within the Metin2 ecosystem.
