Volver a actualizaciones
ActualizadaAug 31, 2026

sogen — Actualizado!

🪅 Emulador de espacio de usuario para Windows y Linux

Compartir


inspect.software score badge for momo5502/sogen

Sogen ejecuta programas de Windows y Linux sin un sistema operativo real, y te permite ver y controlar todo lo que hacen.

En lugar de reimplementar miles de APIs del sistema operativo, Sogen emula binarios a nivel de CPU y llamadas al sistema y ejecuta las DLLs reales del sistema, por lo que el comportamiento se asemeja mucho al sistema operativo real.

Cada instrucción, acceso a memoria y llamada a API puede ser interceptado, inspeccionado o reescrito, las ejecuciones son totalmente deterministas, y todo el estado del emulador puede ser capturado y restaurado.

Construido en C++ y potenciado por el backend de CPU de tu elección:

Pruébalo: sogen.dev
 

Características Clave

  • DLLs reales del sistema: ejecuta las ntdll, kernel32 y user32 reales, no stubs reimplementados
  • Interceptar y reescribir: intercepta y modifica memoria, instrucciones, llamadas al sistema y llamadas a API
  • Internals fieles de Windows: carga de PE (reubicaciones, TLS), tipos de memoria de Windows, SEH, subprocesos, registro, sistema de archivos y red
  • Instantánea y restauración: serialización completa del estado, instantáneas rápidas en memoria y carga de minidumps
  • Se ejecuta en todas partes: Windows, Linux, macOS, Android, iOS y el navegador, en x86-64 y arm64
  • Determinista: cada ejecución es reproducible, hasta la instrucción
     

Vista Previa

Preview

Depuración Indetectable

Depura con las herramientas que ya conoces, como IDA Pro o GDB, mediante el protocolo GDB, o usa el depurador integrado en el navegador.
El depurador se ejecuta a nivel del emulador, fuera del proceso, por lo que permanece invisible a las comprobaciones anti-depuración.

Debugging a process running in Sogen from an IDA Pro remote GDB session  

Ejecuta Juegos en un Sandbox

Las aplicaciones GUI nativas se ejecutan, con ventanas, diálogos y controles funcionales.
La paravirtualización de GPU permite aceleración 3D en tu GPU real, mientras que el backend Hyper-V ejecuta el código de forma nativa en tu CPU. Suficientemente rápido para juegos.
Los títulos Direct3D 8/9/10/11 se ejecutan mediante DXVK, que traduce Direct3D a Vulkan sobre el puente de GPU.

A game running inside the Sogen emulator  

Resumen del Proyecto

YouTube Video

Haz clic aquí para ver las diapositivas.
 

Bindings de Python

Instala con:

pip install sogen

Los bindings de Python requieren una raíz de emulación. Puedes descargar una raíz ya preparada aquí, o crear la tuya propia siguiendo las instrucciones en la wiki.

Ejemplo:

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)

Consulta examples/python/README.md para detalles de configuración y un ejemplo más completo.
 

Bindings No Oficiales

Los bindings de Dart están disponibles en un repositorio separado.
 

Inicio Rápido (Windows + Visual Studio)

[!TIP]
Consulta la Wiki para más detalles sobre cómo compilar y ejecutar el emulador en Windows, Linux, macOS, ...

1. Obtén el código:

git clone --recurse-submodules https://github.com/momo5502/sogen.git

2. Ejecuta el siguiente comando en un Símbolo del sistema para desarrolladores x64 en el directorio clonado:

cmake --preset=vs2022

3. Compila la solución que se generó en build/vs2022/sogen.sln

4. Crea un volcado del registro ejecutando el grab-registry.bat como administrador y colócalo en la carpeta de artefactos junto al analyzer.exe

5. Ejecuta el programa de tu elección:

analyzer.exe C:\example.exe

Categorías