BlackNullSec Path : Pointer_6
🚀 Amaç:Bir pointer, bellekteki bir adresi tutan değişkendir. Yani başka bir değişkenin adresini saklar.
Pointer to Pointer (Double Pointer)
Bir pointer'ın adresini tutan pointer
int x=10;
int*p= & x; // p=x'in adresi
int **pp= & p; // pp=p'in nin adresi
printf("%d",**pp); // 10
Pointer= evin adresi tutan kayıt Pointer adresi= o kagıdın masadaki konumu Sen birine "EVİNE GİT " demek istiyorsan kagıttaki adres yeterli -> *p
Sen birine "kagıttaki adresi degiştir demek istiyorsan " kagıdın masadaki adresini degiştir vermen gerekir -> **pp çünkü kagıt(pointer) taşınabilir
Özet bilgi
Pointer -> Bellek bir verinin adresini tutar
Pointer'ın adresi -> Pointer'ın kendisini bellekte kullanmızı için bu fonksiyon
Pointer'ın işaret ettigi degeri degiştirmesi için --> int *p
Pointer'ın işaret ettigi adresi degiştirmesi --> int **pp bu sayede .
Başka fonksiyon pointer!ın içini deiştirebilir pointer'a yeni adres atanabilir Ve Pointer yeniden yonlendirilebilir
POINTER DEĞİŞTİRME ÖRNEĞİ
void change(int **pp){
static int y = 50;
*pp = &y;
}
int main(){
int x = 10;
int *p = &x;
change(&p);
printf("%d", *p); // 50
}
🧠 AÇIKLAMA:
1.) p pointer
2.) &p → pointer’ın adresi
3.) *pp → pointer’ın kendisini değiştiriyoruz
Pointer Seviyeleri:
*p → değeri değiştirir
**pp → pointer’ı değiştirir
MALWARE BAĞLANTISI
CreateProcess(..., &si, &pi)
→ si ve pi struct pointer
→ &si → pointer’ın adresi
Neden?
Çünkü Windows kernel:
- struct içine veri yazar
- pointer’ın gösterdiği yeri değiştirir
Çıktı:




🌟 Sonraki Yazı: Pointer_7
← Önceki Sonraki →⚠️ Kritik Uyarı
Bu teknikler yalnızca eğitim amaçlıdır. Gerçek sistemlere uygulanması yasadışı olabilir. Asla gerçek ortamlarda test etme.
← Önceki“Windows Belleğiyle Konuşan Kodlar”
hacker