infiltrate 42 #26 Ekim 14, 2017 tarihinde gönderildi Alıntı@ IndianaPOLIS, öncelikle DLL'nin ne olduğundan bahsedeyim biraz sana. Olayları karıştırmışsın. DLL, ingilizce açılımı 'dynamic load library' olan, Windows platformu için fonksiyon/sınıf eklenti kütüphanelerine verilen isimdir. DLL dosyalarının çalıştırılabilir (EXE) dosyalardan farkı, birden fazla veya farklı EXE dosyaları ile aynı anda çalışabilmesidir. DLL dosyaları genellikle paylaşımlı kütüphaneler yazarken kullanılır, örneğin soket sistemi, ses eklentileri, 3d render kütüphaneleri (directx vs.) genellikle dll olarak hazırlanır. Elinde ko.exe'nin kaynak kodu olsa dahi, yapabileceklerinin DLL ile yapabileceklerinden HİÇBİR farkı yok. DLL kullanman, seni hiçbir açıdan kısıtlamadığı gibi, exe kaynak koduna yazabileceğin *sihirli* satırların yoksa, aradaki fark = 0. Daha doğrusu, DLL demek aslında senin kaynak koduna 'ek' yapman demek bir nevi. Ha kodu exenin içerisine dahil etmişsin, ha dll üzerinden çalıştırmışsın. Yazacağın/yazabileceğin kod belli. Sana sıralayayım. 1-) Hafıza koruma işlemi, oyun içerisindeki değişkenleri korumak için Win32 API'sini kullanarak belirli başlı fonksiyonları hooklayıp, OpenProcess, TerminateProcess, CreateThread vs. fonksiyonları engellersin. Aynı işi hile yazan bir arkadaş da yapabilir. Bu süreçleri karmaşıklaştırabilirsin, fakat illa ki süreci çözecek birisi çıkacaktır. KARMAŞIKLIK, GÜVENLİK DEĞİLDİR. 2-) Oyun içerisindeki döngülere oyunun gidişatı ile alakalı kontroller ekleyebilirsin,bu ekleyeceğin kontroller de hile yapacak arkadaş tarafından yeniden yönlendirilebilir, logic kontrolleri tersine çevrilebilir veya tamamen kaldırılabilir. 3-) Dosya kontrolleri, yine aynı şekilde. En basitinden, TBL ile yapılabilen hilelerin sebebinin TBL dosyalarının düzenlenebilmesi olarak görüldüğü bir piyasadayız. Asıl problem bu dosyaların düzenlenebilmesi değil, düzenlendiği zaman hile yapılabilmesi. Düzgünce hazırlanmış bir altyapıda böyle birşeyin olması imkansız. 4-) Karakter animasyonları, genel animasyon kontrolleri. Dosya kontrollerinde bahsettiğim gibi, dosyayı kontrol etmiş olman, bu dosyanın düzenlenemeyeceği anlamına gelmiyor. Hile yapacak arkadaş, hafızaya yüklenen değeri değiştirebilir direk. Hile engelleme sistemlerinin aşılma sebebi dll olması veya driver olması vesaire değil. Asıl problem : HİLENİN CLİENT TARAFINDA ENGELLENMEYE ÇALIŞILMASI. Bir hilenin yapılmamasını istiyorsan, hilenin yapılmasını sağlayan şeyi ortadan tamamen kaldırman lazım, bu da ancak SERVER taraflı mümkün olan birşey. Sen hile kontrolü için cliente güvendiğin sürece, senin güvenlik sistemini aşıp bu hileyi yapacak birileri her zaman var olacaktır. Client taraflı hile engellemek, geçilmesini istemediğin bir patikaya tel örgü çekmeye benzer. Veya biraz daha düzgün birşey yazdıysan, beton duvar örmeye benzer. Senin yapman gereken şey, yola engel koymak değil, yolu kaldırmak. Bunu yapmadığın sürece, o yoldan geçen kaçaklar olacaktır. MMORPG geliştirmenin ilk kuralı : 1-) Never trust the client. Umarım yeterince detaylı anlatabilmişimdir. Kırmızı ile belirttiğim yer çok haklı bir söylem.Client tarafında kontroller her zaman aşılabilir.Kırılamayan sistem yok.Server tarafından bazı ufak kontroller eklendiğinde bir çok problemi çözmüş oluyoruz. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
IndianaPOLIS 30 #27 Konu Sahibi Ekim 14, 2017 tarihinde gönderildi AlıntıArtı olarak, senin yapabilen kişileri bilmiyor oluşun, genel geçer kurduğun şu cümleyi geçerli kılmaz. Herşeyi para olarak görüşünüze hayranım. Yakın zamanda açılacak v1534 server'ıma beklerim. Ne demek istediğimi anlayacaksın. Para olarak düşünmediğim piyasada hiç bir zaman bir şey satmadığımdan bellidir ben sadece düşüncemi söyledim server taraflı ne yaparsan yap sonucta bunun birde client tarafı var sen cliente istediğini yolla client buna bir cevap vermezse bunun ne önemi var DLL'in ne olduğunu bende biliyorum benim demek istediklerimi yanlış anlamışsınız ama bu bir sorun değil. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
PENTAGRAM 920 #28 Ekim 14, 2017 tarihinde gönderildi AlıntıPara olarak düşünmediğim piyasada hiç bir zaman bir şey satmadığımdan bellidir ben sadece düşüncemi söyledim server taraflı ne yaparsan yap sonucta bunun birde client tarafı var sen cliente istediğini yolla client buna bir cevap vermezse bunun ne önemi var DLL'in ne olduğunu bende biliyorum benim demek istediklerimi yanlış anlamışsınız ama bu bir sorun değil.Arkadaşım bak daha detaylı açıklayayım.Server bu işlemde otorite konumundadır. Client cevap vermiyorsa, 's*ktir edersin'. Çünkü client'in cevap verme zorunluluğu vardır. Normal işleyiş bu şekilde olduğu için. Eğer bir anormallik varsa, zaten birisi hile yapmaya, aldığın önlemleri aşmaya çalışıyor demektir.Server taraflı hile önleme, cliente 'birşey' yollamakla olmaz. Hile yapılacak alanları belirleyip, bunların kontrolünü sağlaman lazım. İki tane örnek vereceğim.Birincisi, bütün serverların muzdarip olduğu 'Speedhack' problemi.Problem : Client, hız konusunda karar verici durumda. Server kısmında clientin gerçek hızını hesaplamak için bir mantık yok.Çözüm : Lise 1 Fizik 'Vektörler' konusu.Yapılması gereken şey : İstemci(client) in gönderdiği koordinat ile bir önceki konumu arasındaki mesafeyi hesaplayarak, iki gelen paket arasındaki süreyi göz önünde bulundurduktan sonra, hesaplanan x mesafesinin t süresinde kat edilip edilemeyeceğini belirlemek.Sonuç : Sunucu her zaman clientin gerçek hızını belirleyebilir. Bu sayede speedhack diye bir durum söz konusu olamaz.İkincisi 'wallhack'.Problem : Obje kesişim noktaları (collision mesh) kontrolü yalnızca client tarafında mevcut. Oyuncunun bir obje ile kesişip kesişmediğine yalnızca client karar veriyor. Server tarafında herhangi bir doğrulama yok.Çözüm : Matrix, Interpolasyon, Vektör aritmediğiYapılması gereken şey : Server tarafına da bulunan haritanın collision mesh verisini yükletip, clientin hareket etmek istediği koordinatta bir obje ile kesişmenin söz konusu olup olmadığının belirlenmesi.Sonuç : Client 'ben şuradayım ve burada obje yok' dese dahi, server 'dur bi de ben bakayım.. hııı seni gidi ipne, taşın içindesin' diyeceğinden, objelerin içerisinden geçme gibi bir durum söz konusu olamaz.Bu iki verdiğim örnekten anlayacağın üzere, hile server tarafında engellenir. Client tarafında yapacağın şeyler, yalnızca sökülmüş bir kısmı sürekli dikmeye ve her zaman yırtılmasına göz yummaktan başka birşey değildir.Sağlıcakla. 2 Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
infiltrate 42 #29 Ekim 14, 2017 tarihinde gönderildi AlıntıArkadaşım bak daha detaylı açıklayayım. Server bu işlemde otorite konumundadır. Client cevap vermiyorsa, 's*ktir edersin'. Çünkü client'in cevap verme zorunluluğu vardır. Normal işleyiş bu şekilde olduğu için. Eğer bir anormallik varsa, zaten birisi hile yapmaya, aldığın önlemleri aşmaya çalışıyor demektir. Server taraflı hile önleme, cliente 'birşey' yollamakla olmaz. Hile yapılacak alanları belirleyip, bunların kontrolünü sağlaman lazım. İki tane örnek vereceğim. Birincisi, bütün serverların muzdarip olduğu 'Speedhack' problemi. Problem : Client, hız konusunda karar verici durumda. Server kısmında clientin gerçek hızını hesaplamak için bir mantık yok. Çözüm : Lise 1 Fizik 'Vektörler' konusu. Yapılması gereken şey : İstemci(client) in gönderdiği koordinat ile bir önceki konumu arasındaki mesafeyi hesaplayarak, iki gelen paket arasındaki süreyi göz önünde bulundurduktan sonra, hesaplanan x mesafesinin t süresinde kat edilip edilemeyeceğini belirlemek. Sonuç : Sunucu her zaman clientin gerçek hızını belirleyebilir. Bu sayede speedhack diye bir durum söz konusu olamaz. İkincisi 'wallhack'. Problem : Obje kesişim noktaları (collision mesh) kontrolü yalnızca client tarafında mevcut. Oyuncunun bir obje ile kesişip kesişmediğine yalnızca client karar veriyor. Server tarafında herhangi bir doğrulama yok. Çözüm : Matrix, Interpolasyon, Vektör aritmediği Yapılması gereken şey : Server tarafına da bulunan haritanın collision mesh verisini yükletip, clientin hareket etmek istediği koordinatta bir obje ile kesişmenin söz konusu olup olmadığının belirlenmesi. Sonuç : Client 'ben şuradayım ve burada obje yok' dese dahi, server 'dur bi de ben bakayım' diyeceğinden, objelerin içerisinden geçme gibi bir durum söz konusu olamaz. Bu iki verdiğim örnekten anlayacağın üzere, hile server tarafında engellenir. Client tarafında yapacağın şeyler, yalnızca sökülmüş bir kısmı sürekli dikmeye ve her zaman yırtılmasına göz yummaktan başka birşey değildir. Sağlıcakla. Client tarafında pek bilgim olmadığı için şunu sormak istiyorum.Collision mesh verisini nereden bulabilirim(Clientin içinde)? Ayrıca verdiğin bilgiler biraz daha mantıklı düşünmemi sağladı:) Çok güzel bilgiler veriyorsun.Teşekkürler reis >. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
PENTAGRAM 920 #30 Ekim 14, 2017 tarihinde gönderildi AlıntıClient tarafında pek bilgim olmadığı için şunu sormak istiyorum.Collision mesh verisini nereden bulabilirim(Clientin içinde)? Ayrıca verdiğin bilgiler biraz daha mantıklı düşünmemi sağladı:) Çok güzel bilgiler veriyorsun.Teşekkürler reis >. Client tarafında '.opd' uzantılı dosyaların içerisinde objelerin konumları ve collision meshleri mevcut. Rica ederim, birşeyler katabildiysem ne mutlu bana. 2 Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
infiltrate 42 #31 Ekim 14, 2017 tarihinde gönderildi AlıntıClient tarafında '.opd' uzantılı dosyaların içerisinde objelerin konumları ve collision meshleri mevcut. Rica ederim, birşeyler katabildiysem ne mutlu bana. Peki bu dosyalardaki objelerin nerede olduğunu anlamak için neyi bilmem gerekli? Bana bir 'keyword' söylersen araştırır bakarım üstad. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
PENTAGRAM 920 #32 Ekim 14, 2017 tarihinde gönderildi AlıntıPeki bu dosyalardaki objelerin nerede olduğunu anlamak için neyi bilmem gerekli? Bana bir 'keyword' söylersen araştırır bakarım üstad. Pek internette bulabileceğin bir veri değil. Knight OnLine 1081 kaynak kodlarınddaki N3ShapeMgr'i incelemeni tavsiye ederim. Objelerin okunması ile alakalı kodlar ve collision hesaplamaları bu sınıfın içerisinde. 1 Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
infiltrate 42 #33 Ekim 14, 2017 tarihinde gönderildi AlıntıPek internette bulabileceğin bir veri değil. Knight OnLine 1081 kaynak kodlarınddaki N3ShapeMgr'i incelemeni tavsiye ederim. Objelerin okunması ile alakalı kodlar ve collision hesaplamaları bu sınıfın içerisinde. Peki çok teşekkür ederim.Proje ödevlerimden fırsat buldukça buna bakacağım.Öğrenincede sana refer ederek bir makale yazmayı düşünüyorum. Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
PENTAGRAM 920 #34 Ekim 14, 2017 tarihinde gönderildi AlıntıPeki çok teşekkür ederim.Proje ödevlerimden fırsat buldukça buna bakacağım.Öğrenincede sana refer ederek bir makale yazmayı düşünüyorum. Estağfurullah, rica ederim. Takıldığın yerlerde özel mesaj yolu ile ulaşırsan yardımcı olmaya çalışırım. Kolay gelsin. 1 Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
TheMariaPuder 39 #35 Ekim 14, 2017 tarihinde gönderildi tesekkurler Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
slmblk51 8 #36 Ekim 14, 2017 tarihinde gönderildi bakalım bi Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
CENGLYY 161 #37 Ekim 18, 2017 tarihinde gönderildi Teşekkürler Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
Anyone 56 #38 Ekim 18, 2017 tarihinde gönderildi teşekkürler Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
YigitHanSen 50 #39 Ekim 20, 2017 tarihinde gönderildi teşekkür ederim yararlı paylaşım Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
slmmurat199 1 #40 Ekim 20, 2017 tarihinde gönderildi teşekkürler Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
JustBeAnqeL 4 #41 Ekim 20, 2017 tarihinde gönderildi Teşekkür ederim Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
mjw62335 3 #42 Ekim 22, 2017 tarihinde gönderildi TEŞEKKÜRLER incelemek isterim Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
Janek 21 #43 Ekim 22, 2017 tarihinde gönderildi teşekkürler Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
ByRoSS 2 #44 Ekim 22, 2017 tarihinde gönderildi Teşekkürler Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
n0br4n 3 #45 Ekim 22, 2017 tarihinde gönderildi inceleyelim , teşekkürler Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
xterme 174 #46 Kasım 2, 2017 tarihinde gönderildi Teşekkür ederim Soacs ustune extra guvenlik yaomaua calisiyorum Butun orneklere Açığım :) Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
Makajima 0 #47 Kasım 2, 2017 tarihinde gönderildi Teşekkürler Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
y396com 0 #48 Kasım 25, 2017 tarihinde gönderildi thank you......:) Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
snnspc 1 #49 Aralık 16, 2017 tarihinde gönderildi teşekkürler Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş
Kardiyan 2 #50 Aralık 17, 2017 tarihinde gönderildi teşekkürler Mesajı raporla İletiyi paylaş Link to post Sitelerde Paylaş