Windows Internals und PE-Dateien
Windows Internals und PE-Dateien
Viele Malware-Samples zielen auf Windows. Deshalb behandeln die Unterlagen Windows-Prozesse, Speicher, DLLs und das PE-Format.
Prozesse
Ein Prozess ist ein laufendes Programm.
Zu einem Prozess gehören unter anderem:
- eigener virtueller Adressraum
- ausführbarer Code
- geladene Bibliotheken
- Heap
- Stack
- Handles
- Threads
Malware kann Prozesse starten, beenden, manipulieren oder sich in andere Prozesse einschleusen.
Prozessstruktur im Speicher
Typische Bereiche:
| Bereich | Bedeutung |
|---|---|
| Code | ausführbarer Maschinencode |
| globale Variablen | Daten, die im Programm global verfügbar sind |
| Prozess-Heap | dynamisch angeforderter Speicher |
| Stack | Funktionsaufrufe und lokale Daten |
| geladene DLLs | Bibliotheken im Prozessadressraum |
Virtual Memory
Virtual Memory lässt Programme so arbeiten, als hätten sie einen großen zusammenhängenden Speicherbereich.
In Wirklichkeit wird Speicher in Seiten aufgeteilt und vom Betriebssystem verwaltet.
Vorteile:
- Isolation zwischen Prozessen
- effizientere Speichernutzung
- Auslagerung möglich
- Schutzmechanismen für Speicherbereiche
Dynamic Link Libraries
DLLs sind Bibliotheken, die Code und Daten enthalten und zur Laufzeit in Prozesse geladen werden.
Sie ermöglichen:
- Wiederverwendung von Code
- gemeinsame Bibliotheken
- kleinere Programme
- modulare Architektur
DLL-Hijacking
DLLs sind für Angreifer interessant, weil Programme Bibliotheken aus bestimmten Suchpfaden laden.
Bei DLL-Hijacking wird eine manipulierte DLL so platziert, dass ein Programm sie statt der eigentlich erwarteten DLL lädt.
Das kann passieren, wenn:
- Suchpfade unsicher sind
- Schreibrechte falsch gesetzt sind
- Anwendungen DLLs ohne vollständige Pfade laden
- Verzeichnisse durch Angreifer manipulierbar sind
PE-Format
PE steht für Portable Executable. Es ist das Format für ausführbare Windows-Dateien.
Dazu gehören:
.exe.dll.sys- weitere Windows-Binärdateien
Wichtige PE-Bereiche
| Bereich | Bedeutung |
|---|---|
| DOS Header | beginnt typischerweise mit der Signatur MZ |
| PE Header | beschreibt Architektur und Datei |
| Optional Header | enthält wichtige Ladeinformationen |
| Section Table | beschreibt die Sektionen |
.text | ausführbarer Code |
.rdata | schreibgeschützte Daten |
.data | initialisierte Daten |
.rsrc | Ressourcen wie Icons oder Dialoge |
Warum PE-Analyse wichtig ist
PE-Dateien verraten viel über ein Sample:
- Zielarchitektur
- Importe und Exporte
- verwendete Bibliotheken
- verdächtige Sektionen
- ungewöhnliche Entropie
- Entry Point
- mögliche Packer
- eingebettete Ressourcen
Sicherheitsaspekte
Angreifer manipulieren PE-Dateien, um Analyse und Erkennung zu erschweren.
Mögliche Auffälligkeiten:
- ungewöhnliche Sektionsnamen
- sehr hohe Entropie
- verdächtige Importe
- veränderter Entry Point
- gepackte oder verschlüsselte Bereiche
- fehlende oder gefälschte Metadaten
Merksatz
Eine Windows-Datei ist nicht nur ein Programm. Ihr PE-Aufbau enthält viele Hinweise darauf, was sie tun könnte und wie sie geladen wird.
Zuletzt aktualisiert: 6. Juni 2026