Skip to main content

Sogen Windows user-space emulator bindings

Project description


Sogen is a high-performance Windows user space emulator that operates at syscall level, providing full control over process execution through comprehensive hooking capabilities.

Perfect for security research, malware analysis, and DRM research where fine-grained control over process execution is required.

Built in C++ and powered by the backend of your choice:

Try it out: sogen.dev


[!WARNING]
Caution is advised when analyzing malware in Sogen, as host isolation might not be perfect.
To mitigate potential risk, use the web version to benefit from the additional safety provided by your browser's sandbox.

Key Features

  • 🔄 Syscall-Level Emulation
    • Instead of reimplementing Windows APIs, the emulator operates at the syscall level, allowing it to leverage existing system DLLs
  • 📝 Advanced Memory Management
    • Supports Windows-specific memory types including reserved, committed, built on top of Unicorn's memory management
  • 📦 Complete PE Loading
    • Handles executable and DLL loading with proper memory mapping, relocations, and TLS
  • Exception Handling
    • Implements Windows structured exception handling (SEH) with proper exception dispatcher and unwinding support
  • 🧵 Threading Support
    • Provides a scheduled (round-robin) threading model
  • 💾 State Management
    • Supports both full state serialization and fast in-memory snapshots
  • 💻 Debugging Interface
    • Implements GDB serial protocol for integration with common debugging tools (IDA Pro, GDB, LLDB, VS Code, ...)

Preview

Preview

YouTube Overview

YouTube Video

Click here for the slides.

Quick Start (Windows + Visual Studio)

[!TIP]
Checkout the Wiki for more details on how to build & run the emulator on Windows, Linux, macOS, ...

1. Checkout the code:

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

2. Run the following command in an x64 Development Command Prompt in the cloned directory:

cmake --preset=vs2022

3. Build the solution that was generated at build/vs2022/emulator.sln

4. Create a registry dump by running the grab-registry.bat as administrator and place it in the artifacts folder next to the analyzer.exe

5. Run the program of your choice:

analyzer.exe C:\example.exe

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sogen-0.0.1.dev1.tar.gz (20.7 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

sogen-0.0.1.dev1-cp312-cp312-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.12Windows x86-64

sogen-0.0.1.dev1-cp312-cp312-manylinux_2_39_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

sogen-0.0.1.dev1-cp312-cp312-macosx_15_0_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

sogen-0.0.1.dev1-cp312-cp312-macosx_15_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

File details

Details for the file sogen-0.0.1.dev1.tar.gz.

File metadata

  • Download URL: sogen-0.0.1.dev1.tar.gz
  • Upload date:
  • Size: 20.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sogen-0.0.1.dev1.tar.gz
Algorithm Hash digest
SHA256 76bdf9bad796a7b80ba6d00d6c1293ac99f79469674ab5c08fea44aa0192e823
MD5 f61aac80952c91da1448215fd2a4fd17
BLAKE2b-256 e2ee09b3e555c6a8be18912a7a7a0dd5a950e689429dceef6daebb2eee09acaf

See more details on using hashes here.

Provenance

The following attestation bundles were made for sogen-0.0.1.dev1.tar.gz:

Publisher: build-push.yml on momo5502/sogen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sogen-0.0.1.dev1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: sogen-0.0.1.dev1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sogen-0.0.1.dev1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e23eea5b1d295bfc20d35a604cf2c07d2aa2ccd9417614cef476d52f4505dfcf
MD5 01a1d85c004117d0e986a1134d951b8a
BLAKE2b-256 8e6607953890a3a16ce2467542bc1876381d472ce9c6e98c6e18f8b7b15cb757

See more details on using hashes here.

Provenance

The following attestation bundles were made for sogen-0.0.1.dev1-cp312-cp312-win_amd64.whl:

Publisher: build-push.yml on momo5502/sogen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sogen-0.0.1.dev1-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for sogen-0.0.1.dev1-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 264420c5ae3c7445c1a90e4b3bd0084852c5fe6a9d0b032474b44c9ff53e169e
MD5 a1a0494f7f2a296e55fe40719d365ec6
BLAKE2b-256 a9e5dab1c01eda23acf3cac3cb8954e5b2da4b556145e2c3bc619c1f2854bc9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for sogen-0.0.1.dev1-cp312-cp312-manylinux_2_39_x86_64.whl:

Publisher: build-push.yml on momo5502/sogen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sogen-0.0.1.dev1-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for sogen-0.0.1.dev1-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 da3a30ad5724fd731f18e3aae51d228396de85f90b5ce397e688c5ef30b14def
MD5 f337ae0b490fe32e846272c3cb667ac7
BLAKE2b-256 630e300b098f15c302138264306dd83fb9bde17f7d4642d9edf99310f3866485

See more details on using hashes here.

Provenance

The following attestation bundles were made for sogen-0.0.1.dev1-cp312-cp312-macosx_15_0_x86_64.whl:

Publisher: build-push.yml on momo5502/sogen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sogen-0.0.1.dev1-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for sogen-0.0.1.dev1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e69a9f81db55cff21bdf3644fae4472c9d24c2ecdca9a66123127d3b8bab92f6
MD5 7adcebb07bd6430634a55882b3de11d1
BLAKE2b-256 c316b6e2e6d7acefba61da429182409552e957c8b0f98548fe3344dc66ea6460

See more details on using hashes here.

Provenance

The following attestation bundles were made for sogen-0.0.1.dev1-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: build-push.yml on momo5502/sogen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page