Merhaba Dostlar.
Türkçe adıyla; Hile motoru, açık kaynaklı memory scanner(bellek okuyucu) & debugger(hata ayıklayıcı) bir programdır temelde.
Kurucusu; Eric Heijnen dir.
Bizi ilgilendiren kısım ise CE ile yapabileceklerimiz;
Pointer tanım gereği işaretçi demektir. Bellekteki bir adresi tutarlar.
İşaretçiler adresleri tutmak için önemlidir.
Offset Nedir ?
Offset te bir tanım yapmak yerine örnek ile anlatmak istiyorum.
int b[4];
Şeklinde bir dizi oluşturduğumuzu düşünün.
Bu hafızada muhtemelen şöyle görünecektir;
b[0]
b[1]
b[2]
b[3]
Gördüğünüz gibi dizinin ilk elemanı "b[0]".
Bu ilk elemanı dizinin temel hafıza adresi(base memory address) olarak düşünebiliriz.
Öyleyse;
int "ptr=b+2;
dersem;
b[2] elemanına ulaşacağım.
Peki bu bizim için neden önemli ?
Arkadaşlar Oyun hafızalarında Class(sınıf) lar vardır.
örneğin "Assault Cube" oyununda BaseAddrs dizinine ulaşırsam. ve elimde Health(can) offseti var ise muhtemelen diğer değerlere de ulaşabilirim(ammo,riffle).
Detaylı bir örnek vermek gerekirse;
Assault Cube oyunun da current ammo(şimdiki mermi) sayımıza ulaşmak için Base adrese ulaşıyoruz.
Yani;
"ac_client.exe+10F4F4"
Buna 374,14,0 offsetlerini eklersek merminin pointerine ulaşabiliriz.
"Burada bir Multi-Level Pointer olayı var onun için ayrı bir konu açılabilir."
Assembly Nedir ? Neden Önemli ?
Arkadaşlar bilgisayarlar makina dilinden başka bir şeyi anlamazlar. Yani ikili (binary) bir sisteme sahiblerdir. "1" "0"
Assembly makina dilindeki zorlukları aşmak için yaratılmıştır. İçinde barındırdığı komutlar sayesinde bir çok konuda avantaj sağlamıştır.
Burada;
İlk sayıyı register0' a ikinci sayıyı register1'e yazmış.
Daha sonra a0 ve a1 toplamı a2 ye yazılmış.
Peki neden önemli;
Önemli çünkü Cheat enginede memory view yaptığınızda olaylar Assembly diliyle anlatılıyor ^^
Peki Bunlardan Sonra ?
Arkadaşlar en önemli kısım şudur ki iyi bir kodlama dili bilmeniz gerekiyor. Bakın ileride sıkıştığınız noktalarda açık kaynak kodlarına,githup vs. baktığınızda bir çok farklı still göreceksiniz.
"Neden dword, neden uint, aaa başına yıldız koymuş"
gibi tepkiler vermemek için tabiri yerinde yutun o dili.
Kendinizi iyicene geliştirdikten sonra;
Derlemiş olduğum bu kaynak biraz dağınık olabilir evet. Ama bir çok insana faydalı olacağını ve kafalarındaki bir soruyu bile cevaplayabilmenin mutluluğunu yaşatacaktır bana.
Şimdiden yanlış bir bilgi verdiysem affola. Saygılar sevgiler.
- Öncelikle yolunuzun epey uzun olduğunu bilmenizi isterim.
- Sıkı çalışmaya alışın.
- İngilizce öğrenin çünkü bulacağınız kaynak,source code vb. şeyler türkçe olmayacaktır.
- Çok okuyun/Çok izleyin/Çok yazın.
- Cheat Engine (Hile Motoru) yi öğrenin ve öğretici(tutorial) sini bitirmeye çalışın.(internette bir çok kaynak var bu konuyla alakalı)
- Assembly öğrenin(En azından komutlarını)
- Bir dil öğrenin.Tavsiyem "Cpp(c++)" dir.
Cheat Engine Nedir ?
Türkçe adıyla; Hile motoru, açık kaynaklı memory scanner(bellek okuyucu) & debugger(hata ayıklayıcı) bir programdır temelde.
Kurucusu; Eric Heijnen dir.
Bizi ilgilendiren kısım ise CE ile yapabileceklerimiz;
- Dinamik(Değişken) adreslere ulaşabilmemizi sağlar ve bu adresler değişkendir, dolayısıyla oyun kapanıp tekrar açıldığında değişirler.
- Statik(Belirli bir süre aynı kalan) adreslere ulaşabilmemizi sağlar ki bu bizim için önemli olandır.
- Herhangi bir Value(değer) nin değerini değiştirebilmemizi sağlar.
- o değerin adresini tutan pointeri bulmamızı sağlar.
- ve tabii ki offsetleri bulmamızı sağlar.
Pointer Nedir ?
Pointer tanım gereği işaretçi demektir. Bellekteki bir adresi tutarlar.
İşaretçiler adresleri tutmak için önemlidir.
C++:
Pointerin c++ taki tanımı şu şekildedir;
Değişken türü Değişken Adı;
int *Pint;
float *Pflt;
double *Pdbl;
Offset Nedir ?
Offset te bir tanım yapmak yerine örnek ile anlatmak istiyorum.
int b[4];
Şeklinde bir dizi oluşturduğumuzu düşünün.
Bu hafızada muhtemelen şöyle görünecektir;
b[0]
b[1]
b[2]
b[3]
Gördüğünüz gibi dizinin ilk elemanı "b[0]".
Bu ilk elemanı dizinin temel hafıza adresi(base memory address) olarak düşünebiliriz.
Öyleyse;
int "ptr=b+2;
dersem;
b[2] elemanına ulaşacağım.
Peki bu bizim için neden önemli ?
Arkadaşlar Oyun hafızalarında Class(sınıf) lar vardır.
örneğin "Assault Cube" oyununda BaseAddrs dizinine ulaşırsam. ve elimde Health(can) offseti var ise muhtemelen diğer değerlere de ulaşabilirim(ammo,riffle).
Detaylı bir örnek vermek gerekirse;
Assault Cube oyunun da current ammo(şimdiki mermi) sayımıza ulaşmak için Base adrese ulaşıyoruz.
Yani;
"ac_client.exe+10F4F4"
Buna 374,14,0 offsetlerini eklersek merminin pointerine ulaşabiliriz.
"Burada bir Multi-Level Pointer olayı var onun için ayrı bir konu açılabilir."
Assembly Nedir ? Neden Önemli ?
Arkadaşlar bilgisayarlar makina dilinden başka bir şeyi anlamazlar. Yani ikili (binary) bir sisteme sahiblerdir. "1" "0"
Assembly makina dilindeki zorlukları aşmak için yaratılmıştır. İçinde barındırdığı komutlar sayesinde bir çok konuda avantaj sağlamıştır.
Kod:
Örnek bir Assembly kodu;
mov a0, #2
mov a1, #3
add a2, a1, a0
İlk sayıyı register0' a ikinci sayıyı register1'e yazmış.
Daha sonra a0 ve a1 toplamı a2 ye yazılmış.
Peki neden önemli;
Önemli çünkü Cheat enginede memory view yaptığınızda olaylar Assembly diliyle anlatılıyor ^^
Peki Bunlardan Sonra ?
Arkadaşlar en önemli kısım şudur ki iyi bir kodlama dili bilmeniz gerekiyor. Bakın ileride sıkıştığınız noktalarda açık kaynak kodlarına,githup vs. baktığınızda bir çok farklı still göreceksiniz.
"Neden dword, neden uint, aaa başına yıldız koymuş"
gibi tepkiler vermemek için tabiri yerinde yutun o dili.
Kendinizi iyicene geliştirdikten sonra;
- Basit bir Aimbot yapmayı deneyin.
- Hooking yapmayı deneyin.
- ESP ve bunun için grafik apilerini öğrenin ve uygulayın.
- Ve en krktik nokta bypass işine girişin
Derlemiş olduğum bu kaynak biraz dağınık olabilir evet. Ama bir çok insana faydalı olacağını ve kafalarındaki bir soruyu bile cevaplayabilmenin mutluluğunu yaşatacaktır bana.
Şimdiden yanlış bir bilgi verdiysem affola. Saygılar sevgiler.