KERNEL - [Anti - Cheat Bypass Mantığı ] ANLATIM - 4

Hexist

Gold Üye
Katılım
9 Kas 2024
Mesajlar
174
Beğeniler
80
selamlar arkadaşlar bildiğiniz üzere kernel üzerinde çalışan arkadaşlara forumda anlatımlı konular paylaşıyorum, Konuların takipçisi arkadaşlar yorumda belirtsinler ki konulara devam ediyim konuları katılım az olduğu için bırakmayı düşünüyorum. kernelin ne olduğunu , çalışma mantığını , hilelerin çalışma şeklini anlatmaya çalışıyorum . Öncelikle konuya başlamadan önce her konuda olduğu gibi yine belirtmek isterim ; kardeşlerim abilerim ben bu konuları yaklaşık 30 dakikada hazırlıyorum fakat altında 12-13 seneyi geçen bir tecrübe yatıyor bundan mütevellit lütfen "şurası yanlış olmuş" "yanlız o kod öyle yazılmaz kardeşim" , yok burası yanlış gibi yorumu olanlar lütfen kendilerine saklasınlar , insanız elbet hatamız olabilir konuları açmadan önce gözden geçirmeye vaktim olmuyor genelde lütfen saçma sapan yorumlardan uzak duralım .

KISALTMA OLARAK KULLANILACAKLAR : (ANTI CHEAT : AC) - BYPASS : (BP)
Konuya geçelim başlıkla belirttiğimiz üzere anti cheatleri ele alacağız bu konuda genel olarak cevap bulacağımız sorular "Anti - Cheat nedir ? " , "Anti Cheat ( AC) nasıl çalışır" , "AC nasıl aşılır" , "Bypass nedir ? ".

Öncelikle tersine mühendisliğin altın kurallarından bahsetmek isterim bu konuyu çözmem benim yıllarımı aldı yapay zekanın olmadığı karanlık çağlardan bahsediyorum abilerimizden ne öğrenirsek kardır dediğimiz çağlardan, yıllar öncesinde işinin üstadı bir abim bir sistemi geçmek için önce sistemi tanımalısın demişti çok sallamamıştım o zamanlar fakat bu işte uzmanlaştıkça ne demeye çalıştığını anladım , bir sistemi geçmek için sistemin nasıl çalıştığını anlamanız gerekiyor yapmanız gereken ilk işlem AC'nin kodlarını incelemek ne yaptığını anlamaya çalışmak. Bir önceki konumuzda valorant wall hack yapımından bahsetmiştik buradan örnek verelim; şayet valorantın nasıl kodlandığını bilmeseydik valorantta hile yapamazdık bunun mantığı bu kadar düz , işte tecrübe ve kodlama bilgisi burada devreye giriyor . Başka bir oyun üzerinden hemen örnek vererek bu konuyu aydınlatalım ;

C++:
void RunMove(int ko_ptr_chr, float x, float y) {
 
    //mov eax, [KnightOnLine.exe + B58F70]
    //chr_base 0x400000
    //ko_ptr_chr :: 0x400000 + 0xB58F70

    write_memory<int>(ko_ptr_chr + 0x10C0, 1); // for move
    write_memory<float>(ko_ptr_chr + 0x10CC, x);   // y
    write_memory<float>(ko_ptr_chr + 0x10D4, y); // x
    write_memory<int>(ko_ptr_chr + 0x444, 2); // for move

    float x1 = read_memory<float>(ko_ptr_chr + KO_OFF_GoX); //sanırım bu kısımda hata yapmışım pointerların okumaları write memory kodlarının önüne yazılmalı yoksa adreslere erişemez
    float y1 = read_memory<float>(ko_ptr_chr + KO_OFF_GoY);

    std::cout << "Gidilecek Koordinat: " << x << "," << y << std::endl;
}

KnightOnline isimli oyunda karakterimizin istediğimiz koordinata gittiği bir fonksiyon yazmıştım bu fonksiyon üzerinden örnek verebiliriz şimdi sistemi çözmek için sistemi anlamak neden bu kadar önemli onu göreceğiz..
Hatta bu konuyu açarken kendi hatamı farkettim büyük ihtimalle kodu test etmedim nasılsa çalışıyor diye bu egoya siz düşmeyin .d float y1 = read_memory<float>(ko_ptr_chr + KO_OFF_GoY); x ve y koordinatını oyunun belleğinden okuduğum kısım fonksiyonun başında olmalı , fonksiyonun işleyişi açısından önemlidir sorun yaratabilir.
Devam edelim , yukarıda ki kodlardan ne anlamalıyız hemen bakalım oyun içerisinde karakterimizin bilgilerinin tutulduğu bellek adreslerini bulup bunu programımıza tanıtmışız akabinde bu adresleri kullanarak karakter işlemlerini gerçekleştirmişiz hemen görüntüye aktararak anlatayım ;

Yukarıda hazırladığım görselde bir oyunun bellek adresinde karakterimizle ilgili tutulan verilerin düzenini görüyorsunuz bu tüm oyunlarda böyledir tüm oyunlarda aynı şekilde yazar çünkü oyunun kodlaması böyledir aksi halde kodlanamaz oyunun kodlarını incelediğiniz zaman Karakter bilgilerinin başlagıcının altında karakter bilgilerinin depolanacağı adresleri yazdıklarını görürsünüz . Karakter bilgilerinin başlangıç adresi olarak görselde belirttiğim kısım ;
//mov eax, [KnightOnLine.exe + B58F70] bu koda denk geliyor oyunun belleğini incelediğim zaman bu adresten sonra karakter bilgilerinin sıralandığını gördüm bu tüm oyunlar için geçerlidir. Bu adresi bulabilmemin sebebi oyunun kodlanışını ve oyunun işleyişi bilmem oyunun ASM kodlarını inceleyerek ne yaptığını anlayabilmem ben şayet oyunun işleyişini ASM kodlarına bakarak anlayamasaydım yukarıda karakteri koordinata yürüten bir fonksiyon yazamazdım hemen devam edelim kodları incelemeye,
C++:
    write_memory<int>(ko_ptr_chr + 0x10C0, 1); // for move

    write_memory<float>(ko_ptr_chr + 0x10CC, x);   // y

    write_memory<float>(ko_ptr_chr + 0x10D4, y); // x

    write_memory<int>(ko_ptr_chr + 0x444, 2); // for move


kodları yaklaşık 6 ay önce yazdığım için şu an adresleri hatırlamıyorum fakat for move olarak not düştüğüm bellek adreslerlerinden ilki 0x10C0 Adresi karakter harekete geçtiği anda değişiyordu karakter hareket halindeyken 0x10C0 adresi :256 oluyor bellekten incelediğim zaman eş zamanlı şekilde 0x444 adresi de 0 iken 1 oluyor buradan anlıyoruz ki karakteri harekete geçirince değişen öncelikle iki adres var 0-1 olarak değişen adres karakter hareketli mi hareketsiz mi kayıt ediyor hareketli ise 0x10C0 adresi 256 olarak güncelleniyor fakat x ve y kordinatını belirlemediğimiz sürece karakterimiz hareket etmez hemen bellekten x ve y koordinatının tutulduğu adresi buluyoruz ;
0x10CC olarak kaydetmişim 0x10D4 olarak kaydetmişim, bu adrese float cinsinden veri yazıyoruz bunu bir önceki konumda söylemiştim koordinat adresleri her zaman float olarak bellekte tutulur diye .

oyunun işleyişini bildiğim için karakterim belirlediğim koordinatlara otomatik olarak hareket ediyor birde video çekmiştim onuda paylaşıyım programın nasıl çalıştığını görün :

VİDEO 1


.

Öncelikle bir sistemi tanımanız tanıdıktan sonra sistemi tersine cevirip müdehale etmeniz gerekiyor sanırım yukarıda görsel ve videolu olarak gösterdiğim detaylı örneklerle bu konuya değinmiş oldum.

Anti Cheatler de de durum aynı öncelikle forumda byPass'ın tam olarak anlamını bilen birine ben denk gelmedim bypass'ın ne anlama geldiğini kimse bilmiyor bu bilgiyi düzelteceğiz bunun ne olduğunu ne anlama geldiğini öğreteceğiz sonra bypass nedir anti cheat nasıl çalışır gibi konulara değineceğiz fakat bu günlük bu kadar konuyu açarken tamamlamayı düşünüyordum fakat burada bırakacağım konuyu yazmaya yarın devam edeceğim iyi forumlar..​

Konu hakkında yorumu olan arkadaşlarla yorumlarda buluşalım lütfen bazen bu konuları açarken çok yanlız hissediyorum kendimi acaba boşa mı yazıyoruz o kadar yazıyı diyorum takip ediyorsanız yada merakınız varsa belirtin ki bende boşa yazmadığımı biliyim.

 
Son düzenleme:
vanguard bypass with chatgpt
 
Guzel konu fakat konu basligi ile icerigi farkli olmus. Konu icinde AC bypass anlatilmiyor.
 
Guzel konu fakat konu basligi ile icerigi farkli olmus. Konu icinde AC bypass anlatilmiyor.
evet konuyu açarken ilk amacım o yöndeydi , konunun sonuna yazdıklarımı okursan .. Kışın bu dönemleri çok yoğun çalıştığın için anlık işlerim çıkabiliyor , ayrıca farkettim ki konuyu daha detaylı anlatmalıyım , aslında konu başlığı ile uyumlu durumda yani konu içerisinde herhangi bir ac den örnek verilmedi diye uyumsuz olmuyor , Programların çalışma mantığı burada söz konusu yine burada 3 cümle ile anlatabileceğim bir şey değil ama konunun başlığı ile uyumlu olmadığını düşünüyorsan öğrenmen ve takip etmen gereken çok daha fazla konu var demektir. yada konuyu okumamışsındır. Seni her konuda görüyorum cevabın içinde teşekkür ederim.
 
Bence Bu ve Bu Tarz Konuların Daha Çok Dikkat Çekmesi İçin Videolu Anlatım Üzerinden İlerlemen Daha Doğru Olabilir Diye Düşünüyorum. Örnek Vermek Gerekirse En Baştan Boş Bir Proje ile Başlayıp Sonradan Eklemeler Yaparak İnsanların Dikkatini Daha Çok Çekebilirsin. Böylece İnsanlara Daha Kolay ve Anlaşılabilir Bir Anlatım Seçenegi Sunmuş Olursun.

Şahsi Fikrimi Soracak Olursan İnsanların Pek Yazılı Anlatım Üzerinden Birşeyler Anlayabileceğini Zannetmiyorum. Çünkü Zaten C++ Diline Aşina Olan Kişi Sayısı Forumda Azdır.
 
Teşekkür ediyorum galiba yorumlardaki arkadaşlar gibi bende aynısını düşünüyorum çok şey verecekmişsin gibi davranıp az şey söylüyorsun gibi çünkü forumda ufaktan takılan bir insan herşeyin farkında ama nasıl yapacağını bilmiyor
 
Bence Bu ve Bu Tarz Konuların Daha Çok Dikkat Çekmesi İçin Videolu Anlatım Üzerinden İlerlemen Daha Doğru Olabilir Diye Düşünüyorum. Örnek Vermek Gerekirse En Baştan Boş Bir Proje ile Başlayıp Sonradan Eklemeler Yaparak İnsanların Dikkatini Daha Çok Çekebilirsin. Böylece İnsanlara Daha Kolay ve Anlaşılabilir Bir Anlatım Seçenegi Sunmuş Olursun.

Şahsi Fikrimi Soracak Olursan İnsanların Pek Yazılı Anlatım Üzerinden Birşeyler Anlayabileceğini Zannetmiyorum. Çünkü Zaten C++ Diline Aşina Olan Kişi Sayısı Forumda Azdır.
Teşekkür ederim yorumun için , yazılım video ile öğrenilmez diye düşünüyorum yada biz eskide kaldık her şeyi okuyarak öğrendiğimi hatırlıyorum ben , videolu anlatım bu işler için fazla lükse kaçıyor. Ha yazarak belki de ben kötü anlatıyorumdur bilemem ama bu konuya ilgisi olan adamında c++ bilgisi olacak yoksa bu konuyu okumasının bir manası yok . Ek olarak forum sadece valorant odaklı valorantta sıfırdan hile yazabilirim videolu şekilde 24 saat sürer tüm videoları çekmem ama sürekli banlanıp ban açtırmam sıkıntı yaratır bana , ben mmorpg oyunlarında çalışıyorum daha zor daha karmaşık onuda videolu anlatsam inan ki bunu anlamayan adam onu hiç anlamaz valorant gibi iki offseti bul wall hack yap değil mmorpg de işler. Yani şöyle düşün ben inline assembly kullanımını c++ bilmeyen adama nasıl anlatabilirim ki .d Kararsızım bu konularda her türlü tavsiyeye yeniliğe ve öğrenmeye açığım

Teşekkür ediyorum galiba yorumlardaki arkadaşlar gibi bende aynısını düşünüyorum çok şey verecekmişsin gibi davranıp az şey söylüyorsun gibi çünkü forumda ufaktan takılan bir insan herşeyin farkında ama nasıl yapacağını bilmiyor
rica ederim , öncelikle herşeyin farkında olan bir insan için değil bu konu herşeyin farkında olan okumasın zaten. "çok şey verecekmişsin gibi davranıp az şey söylüyorsun" burayı anlayamadım yani insanların yıllarca çalışıp tecrübe biriktirip yaptığı şeyleri 2 sayfalık yazıya sığdırıp nasıl anlatabilirim bilmiyorum , benim elimden gelen bu.
 
konunun başlığı ile uyumlu olmadığını düşünüyorsan öğrenmen ve takip etmen gereken çok daha fazla konu var demektir. yada konuyu okumamışsındır.
Anlamadım benim mi öğrenmem gereken daha çok konu var ? Peki. Yarın gel şirketimde işe başla öğret bana.
 
Son düzenleme:

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt