Hilenin Yapı Taşı: POİNTER
Pointer, C dilinde bir verinin ram üzerindeki adresini tutan bir değişken türüdür. Pointer'lar, özellikle diziler, fonksiyonlar ve dinamik bellek yönetimi ile çalışırken oldukça kullanışlıdır.
Pointer'ların Temel Özellikleri
- Ram(Bellek) Adreslerini Tutma: Bir pointer, ramde başka bir verinin adresini saklar. Örneğin, int *ptr ifadesi, ptr adlı bir pointer'ın bir int değişkeninin adresini tutacağını belirtir.
- Gösterilen Değere Erişim: Pointer'lar aracılığıyla ramde bir verinin adresine gidip o verinin değerine erişebilirsiniz. Bu işleme "dereferencing" denir ve * operatörü ile yapılır.
- Tip Güvenliği: Pointer'lar tür bilgisine sahiptir. Yani bir int pointer, sadece int türündeki verilerin adreslerini tutabilir.
Pointer Tanımlama ve Kullanma
Pointer tanımlarken * işaretini kullanırız ve bu pointer'ın hangi türdeki verilerin adreslerini tutacağını belirtiriz:
C:
int x = 10; // Bir integer değişken tanımlama
int *ptr; // Bir integer pointer tanımlama
ptr = &x; // Pointer'ı x değişkeninin adresine atama
Dereferencing (Gösterilen Değere Erişim)
Bir pointer'ın tuttuğu adresteki değere erişmek için * operatörünü kullanırız:
C:
int y = *ptr; // ptr'nin gösterdiği adresteki değeri al ve y'ye ata
Örnek:
Pointer'ların nasıl çalıştığını gösteren basit bir örnek:
C:
#include <stdio.h>
int main() {
int x = 10; // Bir integer değişken tanımlama
int *ptr; // Bir integer pointer tanımlama
ptr = &x; // Pointer'ı x değişkeninin adresine atama
printf("x'in değeri: %d\n", x);
printf("ptr'nin gösterdiği değeri: %d\n", *ptr);
*ptr = 20; // Pointer aracılığıyla x'in değerini değiştirme
printf("x'in yeni değeri: %d\n", x);
return 0;
}
Bu programın çıktısı:
C:
x'in değeri: 10
ptr'nin gösterdiği değeri: 10
x'in yeni değeri: 20
Pointer'ın gündelik yaşamda en basit kullanım örneği ise CheatEngine üzerinde yapılan işlemlerdir.
1. Üzerinde değişiklik yapmak istediğimiz verimizi belirliyoruz.

2. Daha sonra değişiklik yapacağımız veriyi bir kod yardımı ve ya bir program aracılığı ile buluyoruz.

3. Bulmuş olduğumuz veriyi değiştiriyoruz.

4. Bu şekilde basit olarak bir pointer kullanmış oluyorsunuz ve hile yapmış oluyorsunuz.

Yardımları için Teşekkürler: @Kruvazör @Suppressor

2. Daha sonra değişiklik yapacağımız veriyi bir kod yardımı ve ya bir program aracılığı ile buluyoruz.

3. Bulmuş olduğumuz veriyi değiştiriyoruz.

4. Bu şekilde basit olarak bir pointer kullanmış oluyorsunuz ve hile yapmış oluyorsunuz.

Yardımları için Teşekkürler: @Kruvazör @Suppressor








