Image

Malware giriş.

Malware

BlackNullSec Path #3: Memory Walking & Arithmetic?

🚀 Amaç:Bir pointer, bellekteki bir adresi tutan değişkendir. Yani başka bir değişkenin adresini saklar.

🔎 Neden Pointer Kullanırız?

  • Pointer Arithmetrics:Verini türü belli olmadıgnda yada +1 byte ilerlertmek için kullanılır.
  • Memory Walking: Türü belli olmayan verileri yurutmek için kullanılır.
  • Void Pointer: Girilen verinin türü belli olamyacagı yada her türlü veri kullanmak için .
  • Cast Etme :Belli olmayan verilerin türüne degiştirme .

🧪 Pointer Arithmetrics

Not: Bir pointer +1 eklemek byte ilerletmez.Pointer tutugu tipin boyutu kadar ilerler
ÖR:
 int= 4 byte
 char= 1 byte
 double= 8 byte 

ÖR=
 int=*p
 p=p+1  //4 byte ilerler


 ÖR= Pointer Arithmetrics(Malware için onemli)

 typedef struct{
  int id;
  int age;
  int score;

 }info

 int main (){
  info data={1,25,90};
  int *ptr=(int*)&data;

  printf("%d\n",*ptr);     //id
  printf("%d\n",*(ptr+1);   //age
  printf("%d\n",*(ptr+2); // score 
 }

Memory Walking

Formül: (Address + offset) = (BasePointer + n × sizeof(type))
NOT= Eger pointer char* ise (p+n)-> n byte ileri, memory walking için ideal. Eger pointer türü int*size ise p+n -> n*4 byte ileri Eger pointer türü void* ise p+n çalışmaz çünkü void* Pointer Arithmetrics yasak unsigned char *p=(unsigned char*)memory
ÖNEMLİ: Memory walking her zaman (unsigned char*) ile yapılır.
ÖNEMLİ: Her zaman memory walking'de "unsigned char *p=(unsigned char*)memory; bu sayede trden kurtulur ve 1 byte şeklinde ilerler

🧠 Memory Walking Formülü

🔥 EN KRİTİK FORMÜL

(Address + offset) = (BasePointer + n × sizeof(type))
Açıklama:
BasePointer → başlangıç adresi
n → kaç eleman ilerleyeceğin
sizeof(type) → veri tipi boyutu
ÖNEMLİ: unsigned char *p = (unsigned char*)memory;
int id = *(int*)(p); // 4 byte INT
short flag = *(short*)(p+4); // 2 byte
char c = *(char*)(p+6); // 1 byte
Önemli=Daha sonra türüne cast edilmelidir

🔗 Array ve Pointer İlişkisi

int arr[3] = {10,20,30};
int *p = arr;
printf("%d\n", *(p + 2)); // 30

🌟 Sonraki Yazı: Pointer_4

← Ö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.

BlackNullSec
“Windows Belleğiyle Konuşan Kodlar”