[Fikir isteniyor] Hile engellemek için program

TheMuhammed2188

Java <3
Mesajlar
779
En iyi cevaplar
0
Beğeniler
432
Puanları
700
Ruh hali
Yakında yapıp paylaşıcağım program hakkında sizden fikir istiyorum.
Biraz program/plugin hakkına bilgi vereyim ondan sonra sizin fikirlerinizi alayım.


Fikir'in bir kısmını FairPlayMinecraft plugininden aldım fakat daha gelişmiş hali olucak tabikide (ve ücretsiz hehehe :D)
Yapıldıktan sonra toplam iki tane dosya olacak. bir tanesi sunucu için plugin öbürü ise client için program.
Client ile sunucu arasındaki iletişim hakkında iki fikrim var (farklı fikirleriniz var ise yazabilirsiniz):

1. Sunucu için ayrı bir program daha ve bu program farklı bir port'tan bağlantı açıp arasındaki iletişimleri bu şekilde sağlayacak.
2. Kendi sunucumu kurup o sunucudan birbirlerinin iletişimi sağlanamak. (FairPlayMC'nin yaptığı gibi)
 


TheMuhammed2188

Java <3
Mesajlar
779
En iyi cevaplar
0
Beğeniler
432
Puanları
700
Ruh hali
PluginMessage paketi ile client'den sunucuya özel paket gönderebilirsin.
Bkz:http://wiki.vg/Protocol#Plugin_Message_.28clientbound.29

Ayrıca Dinnerbone'un blogunda da bu paket hakkında açıklamalar bulabilirsin:
https://dinnerbone.com/blog/2012/01/13/minecraft-plugin-channels-messaging/
Client derken program'ı kastetmiştim :D (Program'ı kastettiysende program'dan Minecraft'a bağlanmayı bilmiyorum :/)
Minecraft'ın kodlarını editlemeden sadece bir program ile yapmaya çalışıyorum :/

Yani sadece TCP/UDP bağlantısı kursam yeterli. (Çoğu kişi sadece Minecraft sunucusu aldıkları için öbür portlar kapalı tutuluyodur)
Program "hile yok" yazısı göndersin, sunucu "onaylandı" göndersin yeterli yani.
Gerçi bunu "hosts" dosyasını editleyerek fake sunucuya aktarıp arasındaki iletişimin kopyasını oluşturabilirler.

En iyisi kendi sunucumu açıp bütün bağlantıları ordan yönetmek.

Bu arada mesajın için sağol gerçekten akıllıcaymış (ben çok basit metodlar düşünüyordum) :D
Eğer bunların hiçbirini yapamazsam (sunucu bulamamak gibi bir durumda) Minecraft'ı editlemek zorunda kalıcam
 

CoffeeBeat

Zindev
Mesajlar
501
En iyi cevaplar
0
Beğeniler
958
Puanları
1,320
Client derken program'ı kastetmiştim :D (Program'ı kastettiysende program'dan Minecraft'a bağlanmayı bilmiyorum :/)
Minecraft'ın kodlarını editlemeden sadece bir program ile yapmaya çalışıyorum :/

Yani sadece TCP/UDP bağlantısı kursam yeterli. (Çoğu kişi sadece Minecraft sunucusu aldıkları için öbür portlar kapalı tutuluyodur)
Program "hile yok" yazısı göndersin, sunucu "onaylandı" göndersin yeterli yani.
Gerçi bunu "hosts" dosyasını editleyerek fake sunucuya aktarıp arasındaki iletişimin kopyasını oluşturabilirler.

En iyisi kendi sunucumu açıp bütün bağlantıları ordan yönetmek.

Bu arada mesajın için sağol gerçekten akıllıcaymış (ben çok basit metodlar düşünüyordum) :D

Eğer bunların hiçbirini yapamazsam (sunucu bulamamak gibi bir durumda) Minecraft'ı editlemek zorunda kalıcam
Sunucunun IP adresini ve portuna sahipsen minecraft paketini minecraft açık olmasa da atabilirsin.
Sadece paket classını ve gönderme metodunu programına eklemen lazım.

He bide bot yazıp sahte client olarak göndermen lazım.
 

Admicos

Nether Yerlisi
Mesajlar
2,362
En iyi cevaplar
1
Beğeniler
1,580
Puanları
4,890
Ruh hali
Gerçi bunu "hosts" dosyasını editleyerek fake sunucuya aktarıp arasındaki iletişimin kopyasını oluşturabilirler.
O zaman sunucu tarafında onaylayıp adamları al. Ama bir iki sorun var

Program "hile yok" yazısı göndersin, sunucu "onaylandı" göndersin yeterli yani.
İşte burada python ve socketlarla bi program yaparım hemen onaylar hiç ayarlamadan. Şimdi normal şifreleme deneyebilirsin (AES falan işte). Ama key gerekicek ki bu keyi sunucudan istemek zorunda kalacaksın. Ben kendi programımla keyi isteyip yine şifreleyerek gönderebilirim. Böyle yapacaksan SAKIN .NET KULLANMA! Çabucak eski haline döndürülüp key çıkarılabiliyor.

AES yerine public/private key şifreleme'de kullanabilirsin ama onlarda da aynı sorun çıkabilir.
 

TheMuhammed2188

Java <3
Mesajlar
779
En iyi cevaplar
0
Beğeniler
432
Puanları
700
Ruh hali
Sunucunun IP adresini ve portuna sahipsen minecraft paketini minecraft açık olmasa da atabilirsin.
Sadece paket classını ve gönderme metodunu programına eklemen lazım.

He bide bot yazıp sahte client olarak göndermen lazım.
Sorun işte client oluşturmakta :(
Önceden internette çok araştırmıştım (Java hariç farklı bir dilde yapıyorum) yapmak için baya bi zor. :(


O zaman sunucu tarafında onaylayıp adamları al. Ama bir iki sorun var


İşte burada python ve socketlarla bi program yaparım hemen onaylar hiç ayarlamadan. Şimdi normal şifreleme deneyebilirsin (AES falan işte). Ama key gerekicek ki bu keyi sunucudan istemek zorunda kalacaksın. Ben kendi programımla keyi isteyip yine şifreleyerek gönderebilirim. Böyle yapacaksan SAKIN .NET KULLANMA! Çabucak eski haline döndürülüp key çıkarılabiliyor.

AES yerine public/private key şifreleme'de kullanabilirsin ama onlarda da aynı sorun çıkabilir.
Yeni bir bağlantı açmak zor (hosting kullananlar için) ve güvenilir olmadığı için en iyisi tek bir sunucudan hepsini yönetmeyi düşünüyorum
MySQL kullanarak bir sistem yapmayı düşünüyorum

Sunucu her oyuncu girişinde benim sunucuma kendi sunucu IP bilgilerine oyuncunun ismini yazdıracak ve programın henüz kullanmadığını iletecek. Oyuncu programı açtıktan sonra benim sunucuma bağlanıp hangi sunucuya bağlandığını bulacak ve o sunucuya eğer hilesi yoksa gerekli bilgiyi yazdıracak. İyi mi ? :D (Elimden geldiğince amatörce düşündüm)
 
Son düzenleme:

Admicos

Nether Yerlisi
Mesajlar
2,362
En iyi cevaplar
1
Beğeniler
1,580
Puanları
4,890
Ruh hali
Sunucu her oyuncu girişinde benim sunucuma kendi sunucu IP bilgilerine oyuncunun ismini yazdıracak ve programın henüz kullanmadığını iletecek. Oyuncu programı açtıktan sonra benim sunucuma bağlanıp hangi sunucuya bağlandığını bulacak ve o sunucuya eğer hilesi yoksa gerekli bilgiyi yazdıracak. İyi mi ? :D (Elimden geldiğince amatörce düşündüm)
Basitçe, senin ne gönderdiğini biliyorsak programını devre dışı bırakabiliriz. O yüzden şifrele ama içinde bir token falan bulundur (belirli bir şeye göre olabilir ama her girişte değişik olacak) sunucuda da aynı tokenin (veya bi çevrilmişi falan) bulunması gerekiyor ki şifrelemenin kilidini açıp içindeki tokeni karşılaştırabil.

Anlamadıysan bile şunu sözlemem lazım: Ne yaparsan yap, yine biri onu kıracaktır. O yüzden yapabileceğin kadar zor yap ki kırılması uzun sürsün. Ama iyi yandan, (mı diyim bilmiyorum) genelde hile kullananlar hazır beklediği için, eğer popüler olmassan en basitleri bile hilenin büyük bir kısmını kaldırabilir (emin değilim)
 

TheMuhammed2188

Java <3
Mesajlar
779
En iyi cevaplar
0
Beğeniler
432
Puanları
700
Ruh hali
Basitçe, senin ne gönderdiğini biliyorsak programını devre dışı bırakabiliriz. O yüzden şifrele ama içinde bir token falan bulundur (belirli bir şeye göre olabilir ama her girişte değişik olacak) sunucuda da aynı tokenin (veya bi çevrilmişi falan) bulunması gerekiyor ki şifrelemenin kilidini açıp içindeki tokeni karşılaştırabil.

Anlamadıysan bile şunu sözlemem lazım: Ne yaparsan yap, yine biri onu kıracaktır. O yüzden yapabileceğin kadar zor yap ki kırılması uzun sürsün. Ama iyi yandan, (mı diyim bilmiyorum) genelde hile kullananlar hazır beklediği için, eğer popüler olmassan en basitleri bile hilenin büyük bir kısmını kaldırabilir (emin değilim)
Yapacaz birşeyler :D
Önce bi Türkiye'den beta ile başlıyalım
:D (Zaten öbür ülkeler pek umrumda değil Türkiye gelişsin hehehe :D)

Program hakkında ayrıntılı bilgi vermek istemiyorum güvenlik açısından ama şeytani şeyler planlıyorum bunu bilmeniz yeterli :D
 

MustafaMertBulut

MC.MAXCRAFT.AT
Mesajlar
1,098
En iyi cevaplar
0
Beğeniler
260
Puanları
680
Kendi sunucumu kurup o sunucudan birbirlerinin iletişimi sağlanamak. (FairPlayMC'nin yaptığı gibi)Kendi sunucumu kurup o sunucudan birbirlerinin iletişimi sağlanamak. (FairPlayMC'nin yaptığı gibi)
boşa para verme şöyle olurmu ? her plugin yüklü olduğu sunucuyla iletişim sağlasın yani mysql gibi bir şey ekle ?
 

crafter_alperen

Kızıltaş Madencisi
Mesajlar
612
En iyi cevaplar
0
Beğeniler
128
Puanları
730
Ruh hali
aac 1.9.10 b-7 sürümünü 1.8.8 spigotta kullanıyoruz ve parayla configini de ayarlattık. hilelerin çoğu çalışmıyor. tavsiye ederim.
 

TheMuhammed2188

Java <3
Mesajlar
779
En iyi cevaplar
0
Beğeniler
432
Puanları
700
Ruh hali
aac 1.9.10 b-7 sürümünü 1.8.8 spigotta kullanıyoruz ve parayla configini de ayarlattık. hilelerin çoğu çalışmıyor. tavsiye ederim.
tmm krds

Kendi sunucumu kurup o sunucudan birbirlerinin iletişimi sağlanamak. (FairPlayMC'nin yaptığı gibi)Kendi sunucumu kurup o sunucudan birbirlerinin iletişimi sağlanamak. (FairPlayMC'nin yaptığı gibi)
boşa para verme şöyle olurmu ? her plugin yüklü olduğu sunucuyla iletişim sağlasın yani mysql gibi bir şey ekle ?
Zaten sunucuya para vermicektim beleş hostinglerden sağlıcaktım :D

Kendi sunucunun MySQL'ine girerken şifreyi falan nerden bulucak :/
Program'ın içine sunucunun MySQL bilgilerini yerleştirmek lazım. Yani her sunucu için ayrı program indirmek gerekli olur.
 

MustafaMertBulut

MC.MAXCRAFT.AT
Mesajlar
1,098
En iyi cevaplar
0
Beğeniler
260
Puanları
680
tmm krds


Zaten sunucuya para vermicektim beleş hostinglerden sağlıcaktım :D

Kendi sunucunun MySQL'ine girerken şifreyi falan nerden bulucak :/
Program'ın içine sunucunun MySQL bilgilerini yerleştirmek lazım. Yani her sunucu için ayrı program indirmek gerekli olur.
şöyle olmazmı advancedban'da filan var mysql bilgilerini giriyosun senin pluginindede o olsun çalışması için mysql bağlaman gereksin ? beleş hosting verenlerden iyi hizmet alırmısın bilmem :(
 

TheMuhammed2188

Java <3
Mesajlar
779
En iyi cevaplar
0
Beğeniler
432
Puanları
700
Ruh hali
şöyle olmazmı advancedban'da filan var mysql bilgilerini giriyosun senin pluginindede o olsun çalışması için mysql bağlaman gereksin ? beleş hosting verenlerden iyi hizmet alırmısın bilmem :(
Zaten 1 eklenti sunucu için olacak. 1 programda oyuncular için olacak.
Eklenti'yi MySQL'e bağlarız, kolay. Program bağlanamadıktan sonra oyuncunun hile olmadığı bilgisi nereden aktarılacak. :/

Ben aklımdaki fikri bi deniyecem.
Sunucu performansında, arasındaki iletişim hızında vb.. sorun çıkarsa artık Minecraft'ı editleyerek falan yapıcam :/
 

Üst