Hexist
Gold Üye
- Katılım
- 9 Kas 2024
- Mesajlar
- 174
- Beğeniler
- 80
tabi , şirket bilgilerini yazar mısın lütfen.Anlamadım benim mi öğrenmem gereken daha çok konu var ? Peki. Yarın gel şirketimde işe başla öğret bana.
tabi , şirket bilgilerini yazar mısın lütfen.Anlamadım benim mi öğrenmem gereken daha çok konu var ? Peki. Yarın gel şirketimde işe başla öğret bana.
Sirketin ismi CodeCraft.
eline sağlık kekemselamlar 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 ;
Linkleri görebilmek için kayıt olmanız gerekmektedir
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.
konuda sadece hafızaya veri yazmak olduğu için başlık biraz farklı olmuş arkadaşların anlamadıkları nokta şu aslında bypasslar da hafızaya veri yazılarak yapılıyor önemli olan o kontrol adresini bulmak ve byte patch ile hafızaya veri yazıp pas geçmek aslında görmesini bilen arkadaşlar için konuda bypass var size kalan şey korumanın adresini tespit etmek ve writeprocessmemory veya memcpy ile o adresteki veriyi değiştirmek çok ütopik birşey değil yani eğer hedef programın belleğine erişiminiz varsa olay bitmiş oluyor zaten istediğiniz gibi at koşturabilirsiniz.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.
Noldu yanit vermedin hala geri donus bekliyorum. Senden bypass dersleri almak istiyorum. SGK + Asgari ucret veririm sana yarin gel basla.
Bu yorumu çerçeveletip konunun başına asmamız gerekiyor. Konuda tam anlamıyla bir bypass'ın mantığının girişi anlatıldı ama tecrübesiz gençler istiyor ki oynadıkları oyununun AC sini video kaydına alıp 2-3 saatlik bir uğraşla bypasslayıp paylaşalım , o şekilde daha çok anlayacaklarını düşünüyorlar . Dünya da ki her hangi bir uygulamanın belleğinden veri okuyup okunan veriyi değiştirebiliyorsanız zaten bypasslamışsınız demektir geriye sadece işin ameleliği kalır. Oyun belleğinin ne olduğunu , belleğin işleyişini, bellek yapısını anlatmadan bypass'ı nasıl anlatabilirsin ki . Hocam yanlış hatırlamıyorsam sizin bir projenizi de görmüştüm hatta yukarıda kodladığım projede sizin bir dll projenizden GetDist. kodlarınızı alıp çevirmiştim oto Z fonksiyonu yazmak için , dll kullanmamaya yemin etmişiz sanki .konuda sadece hafızaya veri yazmak olduğu için başlık biraz farklı olmuş arkadaşların anlamadıkları nokta şu aslında bypasslar da hafızaya veri yazılarak yapılıyor önemli olan o kontrol adresini bulmak ve byte patch ile hafızaya veri yazıp pas geçmek aslında görmesini bilen arkadaşlar için konuda bypass var size kalan şey korumanın adresini tespit etmek ve writeprocessmemory veya memcpy ile o adresteki veriyi değiştirmek çok ütopik birşey değil yani eğer hedef programın belleğine erişiminiz varsa olay bitmiş oluyor zaten istediğiniz gibi at koşturabilirsiniz.
örneğin bir if sorgumuz var byte karşılığı 74 ise ve o if e girince exit apisi çağırılıyorsa siz bunu writeprocessmemory ile 75 yani jne = ifnot yapıp korumayı atlayabiliyorsunuz yada exit call attığı yere call 5 byte tır 0x90,0x90,0x90,0x90,0x90 yzarak o call ın çağırılmasını engelleyebilirsiniz 0x90 lar nop tur ve o satırı boş geçer yani bu iş için azıcık bir asm bilgisi gerekiyor en azından okuduğunu anlayacak kadar bir sonraki konuda byte patch gösterirsen örnek bir antide daha anlaşılır olabilir yeni başlayan arkadaşlar için yada koruma adreslerini c.e veya ida ile bulmak gibi fonksiyon takibi vs. konular daha yardımcı olabilir
şimdi girebildim foruma , şirketinizde bana yer ayırabildiğiniz için çok teşekkür ederim ben remote çalışıyorum bozar mı siziNoldu yanit vermedin hala geri donus bekliyorum. Senden bypass dersleri almak istiyorum. SGK + Asgari ucret veririm sana yarin gel basla.
Tabi bize uygun. Bize CV/Portfolyo ve daha önce yapmış olduğunuz projeleri atarmısınız özelden?Bu yorumu çerçeveletip konunun başına asmamız gerekiyor. Konuda tam anlamıyla bir bypass'ın mantığının girişi anlatıldı ama tecrübesiz gençler istiyor ki oynadıkları oyununun AC sini video kaydına alıp 2-3 saatlik bir uğraşla bypasslayıp paylaşalım , o şekilde daha çok anlayacaklarını düşünüyorlar . Dünya da ki her hangi bir uygulamanın belleğinden veri okuyup okunan veriyi değiştirebiliyorsanız zaten bypasslamışsınız demektir geriye sadece işin ameleliği kalır. Oyun belleğinin ne olduğunu , belleğin işleyişini, bellek yapısını anlatmadan bypass'ı nasıl anlatabilirsin ki . Hocam yanlış hatırlamıyorsam sizin bir projenizi de görmüştüm hatta yukarıda kodladığım projede sizin bir dll projenizden GetDist. kodlarınızı alıp çevirmiştim oto Z fonksiyonu yazmak için , dll kullanmamaya yemin etmişiz sanki .
şimdi girebildim foruma , şirketinizde bana yer ayırabildiğiniz için çok teşekkür ederim ben remote çalışıyorum bozar mı sizi
ben kafama göre takılıyorum ya zaman zaman external zaman zaman internal çalışıyorsa sıkıntı yok benim içinBu yorumu çerçeveletip konunun başına asmamız gerekiyor. Konuda tam anlamıyla bir bypass'ın mantığının girişi anlatıldı ama tecrübesiz gençler istiyor ki oynadıkları oyununun AC sini video kaydına alıp 2-3 saatlik bir uğraşla bypasslayıp paylaşalım , o şekilde daha çok anlayacaklarını düşünüyorlar . Dünya da ki her hangi bir uygulamanın belleğinden veri okuyup okunan veriyi değiştirebiliyorsanız zaten bypasslamışsınız demektir geriye sadece işin ameleliği kalır. Oyun belleğinin ne olduğunu , belleğin işleyişini, bellek yapısını anlatmadan bypass'ı nasıl anlatabilirsin ki . Hocam yanlış hatırlamıyorsam sizin bir projenizi de görmüştüm hatta yukarıda kodladığım projede sizin bir dll projenizden GetDist. kodlarınızı alıp çevirmiştim oto Z fonksiyonu yazmak için , dll kullanmamaya yemin etmişiz sanki .