Image

Malware giriş.

Malware

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

Image placeholder

⚠️ 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”