
🪅 Windows- und Linux-Userspace-Emulator
Sogen führt Windows- und Linux-Programme ohne ein echtes Betriebssystem aus und ermöglicht es dir, alles zu sehen und zu steuern, was sie tun.
Anstatt Tausende von OS-APIs neu zu implementieren, emuliert Sogen Binärdateien auf CPU- und Syscall-Ebene und führt die echten System-DLLs aus, sodass sich das Verhalten eng am echten Betriebssystem orientiert.
Jeder Befehl, jeder Speicherzugriff und jeder API-Aufruf kann gehookt, inspiziert oder umgeschrieben werden. Läufe sind vollständig deterministisch, und der gesamte Emulatorzustand kann als Snapshot gesichert und wiederhergestellt werden.
Geschrieben in C++ und angetrieben vom CPU-Backend deiner Wahl:
Probier es aus: sogen.dev
Debugge mit den Tools, die du bereits kennst, wie IDA Pro oder GDB, über das GDB-Protokoll, oder nutze den integrierten In-Browser-Debugger.
Der Debugger läuft auf Emulator-Ebene, außerhalb des Prozesses, und bleibt so für Anti-Debug-Checks unsichtbar.

Native GUI-Apps laufen mit funktionierenden Fenstern, Dialogen und Steuerelementen.
GPU-Paravirtualisierung ermöglicht 3D-Beschleunigung auf deiner echten GPU, während das Hyper-V-Backend den Code nativ auf deiner CPU ausführt. Schnell genug für Spiele.
Direct3D-8/9/10/11-Titel laufen über DXVK, das Direct3D über die GPU-Brücke in Vulkan übersetzt.

Klicke hier für die Folien.
Installation mit:
pip install sogen
Python-Bindings erfordern eine Emulations-Root. Du kannst eine fertige Root hier herunterladen oder deine eigene erstellen, indem du den Anweisungen im Wiki folgst.
Beispiel:
import sogen
emu = sogen.windows.create_application("c:/test-sample.exe", emulation_root="./root")
def on_module_load(module):
if module.name.lower() == "test-sample.exe":
emu.hooks.memory_execution_at(module.entry_point, lambda address: print(f"hit entry point: 0x{address:x}"))
emu.callbacks.on_module_load = on_module_load
emu.start()
print(emu.process.exit_status)
Siehe examples/python/README.md für Einrichtungsdetails und ein größeres Beispiel.
Dart-Bindings sind in einem separaten Repository verfügbar.
[!TIP]
Schau ins Wiki für weitere Details zum Erstellen und Ausführen des Emulators unter Windows, Linux, macOS, ...
1. Code auschecken:
git clone --recurse-submodules https://github.com/momo5502/sogen.git
2. Führe den folgenden Befehl in einer x64-Entwickler-Eingabeaufforderung im geklonten Verzeichnis aus:
cmake --preset=vs2022
3. Erstelle die Lösung, die unter build/vs2022/sogen.sln generiert wurde
4. Erstelle einen Registry-Dump, indem du die grab-registry.bat als Administrator ausführst, und platziere ihn im Artefakt-Ordner neben der analyzer.exe
5. Führe das Programm deiner Wahl aus:
analyzer.exe C:\example.exe