BlackNullSec Path #4: Process Apıler
🚀 Amaç: "Process API" dediğimizde, Windows’ta işlem (process) oluşturma, kontrol etme ve sonlandırma gibi işlemleri gerçekleştiren
Windows API fonksiyonları kastedilir. Bu, senin gibi malware developer ya da Red Team geliştiricisi olmak isteyen biri için hayati derecede önemlibir konudur.
Yeni bir işlem başlatmak (CreateProcess, ShellExecuteEx)Mevcut bir işlemi açmak (OpenProcess)İşlem üzerinde işlem yapmak (bellek ayırmak, kod enjekte etmek vs.)İşlemi sonlandırmak (TerminateProcess)İşlem bilgisi almak (GetProcessId, EnumProcesses, PROCESSENTRY32)
1. CreateProcess
Yeni bir işlem başlat.
#include <windows.h>
#include <stdio.h>
STARTUPINFO si = {0};
PROCESS_INFORMATION pi = {0};
si.cb = sizeof(si);
// Yeni bir Notepad işlemi başlat
if (CreateProcessA(
"C:\\Windows\\System32\\notepad.exe", // Uygulama yolu
NULL, // Komut satırı parametresi
NULL, // Güvenlik
NULL, // Thread güvenliği
FALSE, // Handle miras alınsın mı
0, // Ek bayrak
NULL, // Ortam değişkenleri
NULL, // Başlangıç dizini
&si, // Başlangıç bilgisi
&pi)) // Process bilgisi
{
printf("[+] Process ID: %lu\n", pi.dwProcessId);
// İşlem ve thread handle’larını kapat
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
} else {
printf("[-] Hata: %lu\n", GetLastError());
}
return 0;
}
2.OpenProcess Apı
Mevcut prosesi aç.
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
// Bu fonksiyon, PID’si bilinen bir prosesi işlemeye (kod enjekte etmek, bellek okumak vs.) yarar.
PROCESS_ALL_ACCESS kullanırsan her şeyi yapabilirsin (DLL injection gibi).
3.TerminateProcess Apı
Prosesi öldür.
TerminateProcess(hProcess, 0); // 0: çıkış kodu
// Özellikle "anti-debugging" veya "anti-forensics" yazılıml
4.EnumProcesses ve PROCESSENTRY32 Apı
Tüm prosesleri listele. EnumProcesses() → process ID'leri döner. CreateToolhelp32Snapshot() + Process32First/Next() → her işlemi detaylı listeler. Örnek (Process listeleme):
#include <windows.h>
#include <stdio.h>
#include <tlhelp32.h>
int main() {
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (Process32First(snapshot, &pe32)) {
do {
printf("Process name: %ws | PID: %lu\n", pe32.szExeFile, pe32.th32ProcessID);
} while (Process32Next(snapshot, &pe32));
}
CloseHandle(snapshot);
return 0;
}
C'de Notepad exe oluşturma Process apılerde
⚠️ Kritik Uyarı
Bu teknikler yalnızca eğitim amaçlıdır. Gerçek sistemlere uygulanması yasadışı olabilir. Asla gerçek ortamlarda test etme.
🌟 Sonraki Yazı: Memory Apı
Memory API’ler, sistemin kalbinde sessizce operasyon yapmanın anahtarıdır. Dosyaya yazmak iz bırakır, sürece kod enjekte VirtualAllocex ve WriteProcessMemory konularına geçeceğiz.
BlackNullSec
“Windows Belleğiyle Konuşan Kodlar”
“Windows Belleğiyle Konuşan Kodlar”
hacker