Server-Side ı aşmanın bir yolu

Üye
Katılım
15 Ağu 2016
Mesajlar
3
Tepki puanı
0
Ödüller
9
9 HİZMET YILI
merhaba konuyu doğru yere açmadıysam kusura bakmayın
şuan üzerinde çalıştığım bir konu var
android için yapılmış bir oyunda xigncode3 koruması mevcut ve aynı zamanda serverside tarafında oyunun offset kodları oyun dosyaları kontrol ediliyor
emilator tarafında denemelerim devam ediyor cihaza root atsan bile anticheat bunu algılıyor ve oyuna giriş yapamıyosun
bunu kitsune mask ile gizleyip atlatabiliyorum ama oyun değerlerini değiştirdiğimiz an server side bunu algılıyor ve ya oyundan atıyor yada sunucuyu yenıleyıp dınamık offset değerlerini değiştiriyor
emılatorun ıcınden gameguardıan ıle ramdekı değerleri değiştirebiliyoruz veya cheat engine ile emılatorun dışından aynı şekilde değerler okunuyor değiştirmeye çalıştırdığımız an anticheat a takılıyorum bunu takılmadan yapsam bile serverside algılıyor ve bu durumu bozuyor oyunun paket dosyalarındaki hex kodları ile oynadığım zaman yine server side devreye giriyor
sormak istediğim oyunun herşeyi serverside tarafında çok katı bir şekilde tutuluyor bunu aşmanın yada kandırmanın bir yolu varmıdır
 
ölmedim geri döndüm kaldığımız yerden devam
Süper Üye
Katılım
6 Eki 2019
Mesajlar
744
Çözümler
19
Tepki puanı
155
Ödüller
6
Sosyal
6 HİZMET YILI
1- timing exploit : çalışma mantığı sunucu ile client arasında gecikme yaşatır buda sana zaman kazandırır execute için
2- memory hooking: oyunun ram kısımlarına girip ufak değişiklikler yapmak , user modda tespit edilmen çok yüksek ihtimal aşma yolu -kernel çekirdek seviyeye inmektir
3-dinamki offset matematiği : bellekteki offset adresi sürekli değişse bile, verilerin birbirine olan uzaklığı genellikle aynı kalır (örneğin, can, her zaman mermi verisinden 5 adım sonraysa). sadece birini bulduğunda, diğerlerini de kolayca hesaplayıp bulabilirsin.
4-ağ trafiğini engelleme: sunucu ve client birbirine sürekli küçük paket yollar örn, client sunucuya derki 100 hasar aldım ama sen bu paketi filtreleyip engellersen basitçe hasar alamaz duruma gelirsin
5-dma kart: basitçe bi ram okuyucu ek bir kart olduğu için hile yazılımları bunu usb gibi falan tespit edemez yani rami gözetlediğini algılayamazlar burdan aldığın verileri sunucu aracılığı ile başka bir ekrandan radar gibi gösterebilirsin

şimdilik aklıma gelen yollar bunlar iyi denemeler dostum
 
When you grow up your heart dies
Seçkin Üye
Katılım
4 Şub 2017
Mesajlar
380
Çözümler
1
Tepki puanı
97
Ödüller
9
Yaş
26
9 HİZMET YILI
mitm proxy , charles debugging derim
 
Uzman Üye
Katılım
16 May 2018
Mesajlar
210
Çözümler
1
Tepki puanı
32
Ödüller
10
Yaş
30
8 HİZMET YILI
server sürekli bellek taraması yapıp bütünlük kontrolü yapmaz client taraflı bi değişkeni değiştirdin diyelim örneğin butonun pozisyonu eğer atıyosa bu client taraflıdır. server de genelde gelen paket dinlenip incelenir bilgi akışı sağlanır
 
Üye
Katılım
15 Ağu 2016
Mesajlar
3
Tepki puanı
0
Ödüller
9
9 HİZMET YILI
mitm proxy , charles debugging derim
server sürekli bellek taraması yapıp bütünlük kontrolü yapmaz client taraflı bi değişkeni değiştirdin diyelim örneğin butonun pozisyonu eğer atıyosa bu client taraflıdır. server de genelde gelen paket dinlenip incelenir bilgi akışı sağlanır
1- timing exploit : çalışma mantığı sunucu ile client arasında gecikme yaşatır buda sana zaman kazandırır execute için
2- memory hooking: oyunun ram kısımlarına girip ufak değişiklikler yapmak , user modda tespit edilmen çok yüksek ihtimal aşma yolu -kernel çekirdek seviyeye inmektir
3-dinamki offset matematiği : bellekteki offset adresi sürekli değişse bile, verilerin birbirine olan uzaklığı genellikle aynı kalır (örneğin, can, her zaman mermi verisinden 5 adım sonraysa). sadece birini bulduğunda, diğerlerini de kolayca hesaplayıp bulabilirsin.
4-ağ trafiğini engelleme: sunucu ve client birbirine sürekli küçük paket yollar örn, client sunucuya derki 100 hasar aldım ama sen bu paketi filtreleyip engellersen basitçe hasar alamaz duruma gelirsin
5-dma kart: basitçe bi ram okuyucu ek bir kart olduğu için hile yazılımları bunu usb gibi falan tespit edemez yani rami gözetlediğini algılayamazlar burdan aldığın verileri sunucu aracılığı ile başka bir ekrandan radar gibi gösterebilirsin

şimdilik aklıma gelen yollar bunlar iyi denemeler dostum
arkadaşlar cevaplarınız için çok teşekkür ederim aklınızda daha iyi canlanması için açıklayayım
bu bir mobil metin2 oyunu amacım bir multihack geliştirip forumda ücretsiz yayınlamak
(oyun windowsda yok sadece apk veya ios sürümü )


proxy yontemını denedım HTTPS ve SOCKS5 ile sadece oyunun ana ekrana kadar girebildim oyunu baslat butonuna tıkladıgım an sunucu baglantısı kesıldı hatası aldım sanırım TCP kullanıyor
anladıgım kadarıyla bu işlemde clientten sunuya giden paketi yakalayıp ( saldırı hızını 1 den 5 e yukseltıp) gondericez
ama bu durumda serverside algılayıp (saldırı hızı 5 olamaz 1 olmalı ) dıyıp sunucuyu yenılıycek
cunku cheat engineyi ve gameguardian ı kernel sevıyede çalıştırıp (yurume hızım 1 ken veya saldırı hızı 5 e cektıgım zaman) anticheat e takılmadan 1 sanıyeligine calıstırabılıyorum 1 sanıye sonra basladıgım noktaya geri atıyor oyun ve sunucuya yenıden baglanıyor (oyuna yeni girmiş gibi) ve ramdan yakaladıgım offsetler anında degısıyor bunu insansı değerler yapsamda sonuc aynı (saldırı veya yurume hızı 1 ken 1.1 yapıyorum) yine algılıyor
offsetler degişince degeri tekrar bulmam gerekıyor bulsamda sonuc aynı
anladıgım kadarı ile aklıma gelen tek şey clientten sunucuya giden paketi alıp(saldırı veya yurume hızım 1 ) diye gönderip 5 yapmak bkz.(yalancı paket yollamak)
bunun bir yöntemi varmıdır
veya başka yapılacak bir yöntem-metot varmıdır
vakit ayıranlara şimdiden teşekkürler
 
Uzman Üye
Katılım
16 May 2018
Mesajlar
210
Çözümler
1
Tepki puanı
32
Ödüller
10
Yaş
30
8 HİZMET YILI
Sen temel değişkenleri değiştiriyon ilk yapılacak şeyler move speed attack speed gibi değişkenleri değiştirmek bunlardan geliştirici muhtemelen haberdar eğer x,y adresini fazla değil 1 adım değiştirerek sunucuya ben burdayım pakedini yollayıp yakalanmıyosan kademeli teleport atıp move speed yaparsın attack speedde ise sadece ben attack yolluyom diye pakedi ard arda cagırırsan olabilir ya da kombo yaptığın durumlarda paket hızına bak eğer kısıtlaması yoksa hızını arttırabilirsin tabi bunlar deneme yanılma kesin böyledir demiyom
 
ölmedim geri döndüm kaldığımız yerden devam
Süper Üye
Katılım
6 Eki 2019
Mesajlar
744
Çözümler
19
Tepki puanı
155
Ödüller
6
Sosyal
6 HİZMET YILI
arkadaşlar cevaplarınız için çok teşekkür ederim aklınızda daha iyi canlanması için açıklayayım
bu bir mobil metin2 oyunu amacım bir multihack geliştirip forumda ücretsiz yayınlamak
(oyun windowsda yok sadece apk veya ios sürümü )


proxy yontemını denedım HTTPS ve SOCKS5 ile sadece oyunun ana ekrana kadar girebildim oyunu baslat butonuna tıkladıgım an sunucu baglantısı kesıldı hatası aldım sanırım TCP kullanıyor
anladıgım kadarıyla bu işlemde clientten sunuya giden paketi yakalayıp ( saldırı hızını 1 den 5 e yukseltıp) gondericez
ama bu durumda serverside algılayıp (saldırı hızı 5 olamaz 1 olmalı ) dıyıp sunucuyu yenılıycek
cunku cheat engineyi ve gameguardian ı kernel sevıyede çalıştırıp (yurume hızım 1 ken veya saldırı hızı 5 e cektıgım zaman) anticheat e takılmadan 1 sanıyeligine calıstırabılıyorum 1 sanıye sonra basladıgım noktaya geri atıyor oyun ve sunucuya yenıden baglanıyor (oyuna yeni girmiş gibi) ve ramdan yakaladıgım offsetler anında degısıyor bunu insansı değerler yapsamda sonuc aynı (saldırı veya yurume hızı 1 ken 1.1 yapıyorum) yine algılıyor
offsetler degişince degeri tekrar bulmam gerekıyor bulsamda sonuc aynı
anladıgım kadarı ile aklıma gelen tek şey clientten sunucuya giden paketi alıp(saldırı veya yurume hızım 1 ) diye gönderip 5 yapmak bkz.(yalancı paket yollamak)
bunun bir yöntemi varmıdır
veya başka yapılacak bir yöntem-metot varmıdır
vakit ayıranlara şimdiden teşekkürler


1 saniye sonra başladığım noktaya geri atıyor" dediğin olay, literatürde "Rubberbanding" olarak bilinir. Bu, sunucunun "Senin nerede olduğunu ben hesaplıyorum senin gönderdiğin paketlere inanmıyorum, yallah arabistana" deme şeklidir.

  • Sunuadece Proxy (Charles/Burp) yetmez. Oyn içindeki send() ve recv() fonksiyonlarını Frida gibi araçlarla kancalamak (Hooking) gerekir. paket henüz şifrelenmeden yakalanıp değiştirilmeli ve sonra sunucuya gönderilmelidir. Eğer sunucu, karakterin hızını (MoveSpeed) kendi içinde saniyede 1 metre olarak kodladıysa, sen pakette "5 metre gittim" dersen, sunucu "Matematiksel olarak bu imkansız" der ve seni geri ışınlar
XIGNCODE3 normalde statik dosya değişikliklerini (Hex edit) anında yakalar bundan dolayı dosyayı değil, RAM'deki çalışan koda manipüle etmen gerekir
Frida
kullanarak oyunun libil2cpp.so (vb.) kütüphanesindeki anti-cheat kontrol fonksiyonlarını
devre dışı bırakmak. Yani anti-cheat'e Her şey yolunda, dedirten bir "hook" yazmak.


ek olarak sunucu herşeyi kontrol etmez örnek lag oluşur çöker sunucular
örnek olarak
x ve z konumları, animasyon iptalleri gibi birçok alanda boşluk bırakırlar
kullanabileceğin yöntem karakter hızını 5 yapmak yerine animasyon bitti paketinin ortasına saldır paketi koyarak animasyon bitti diye kandırabilirsin sunucuyu
buna Action Cancelling deniyor

yapman gerekenler
Frida öğrenmek
wireshark ile oyunu snifflemek(koklamak)
en önemlisi

Oyun offsetlerini değilde önce XIGNCODE " sinyal paketlerini bulup, onları taklit eden bir yapı kurmalısın bence
 
Üst