İçeriğe atla
0 XP 0
0/6

Puan ders bitince hesaba yazılır. Bu dersi tamamlayınca +55 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.

9 dk · 55 XP · 6 etkinlik

Süreç enjeksiyonu ve kod yükleme

Zararlı kod kendi adıyla çalışmak istemez. Süreç listesinde tuhaf bir ad dikkat çeker. Çözüm, kodu güvenilen bir sürecin içine taşımaktır. Böylece işlem explorer ya da tarayıcı adıyla görünür.

En klasik yöntem uzak iş parçacığıdır. Hedef sürecin tutamacı açılır, o süreçte bellek ayrılır, yük oraya yazılır ve yeni bir iş parçacığı başlatılır. Dört adım, dört tanıdık çağrı.

h   = OpenProcess(PROCESS_ALL_ACCESS, FALSE, hedefPid);
adr = VirtualAllocEx(h, NULL, boy, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(h, adr, yuk, boy, NULL);
CreateRemoteThread(h, NULL, 0, adr, NULL, 0, NULL);
Aç, ayır, yaz, başlat. Bu dörtlü görüldüğünde teknik adıyla anılır.

Bu dört çağrı bir arada göründüğünde teknik kendini ele verir. OpenProcess hedefi seçer, VirtualAllocEx orada yer açar, WriteProcessMemory yükü oraya taşır, CreateRemoteThread ise yükü çalıştırır. Sıra bozulmaz çünkü her adım bir öncekinin ürettiği tutamaca ihtiyaç duyar. Bu çağrıların hepsi işletim sisteminin sunduğu meşru arayüzlerdir; sistem sürece dışarıdan erişim ve bellek yazma imkânını zaten tanır. Zararlı kod bu imkânı gizlenmek için kullanır, araç kötü değildir, kullanım amacı kötüdür.