[//]: # (dependabot-start) ⚠️ **Dependabot is rebasing this PR** ⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps [flatbuffers](https://github.com/google/flatbuffers) from 25.2.10 to 25.9.23. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/flatbuffers/releases">flatbuffers's releases</a>.</em></p> <blockquote> <h2>FlatBuffers Version 25.9.23</h2> <h2>What's Changed</h2> <ul> <li>[Swift] Adds new API to reduce memory copying within swift by <a href="https://github.com/mustiikhalil"><code>@mustiikhalil</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8484">google/flatbuffers#8484</a></li> <li>[C++] Fixes access to union members when generating code with options "--cpp-field-case-style upper" and "--gen-object-api" by <a href="https://github.com/Ailuridae"><code>@Ailuridae</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8447">google/flatbuffers#8447</a></li> <li>[C++] Fix dereference operator of VectorIterator to structures by <a href="https://github.com/admo"><code>@admo</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8425">google/flatbuffers#8425</a></li> <li>[TS] Enum value default null by <a href="https://github.com/bjornharrtell"><code>@bjornharrtell</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8619">google/flatbuffers#8619</a></li> <li>[Swift] Flexbuffers native swift port by <a href="https://github.com/mustiikhalil"><code>@mustiikhalil</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8577">google/flatbuffers#8577</a></li> <li>[TS] Upgrade deps by <a href="https://github.com/bjornharrtell"><code>@bjornharrtell</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8620">google/flatbuffers#8620</a></li> <li>Avoid outputting Python files for already generated types by <a href="https://github.com/akb825"><code>@akb825</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8500">google/flatbuffers#8500</a></li> <li>Bugfix: grpc python code generation location and file suffix by <a href="https://github.com/fliiiix"><code>@fliiiix</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8359">google/flatbuffers#8359</a></li> <li>Decode bytes to strings in Python Object API by <a href="https://github.com/sethraymond"><code>@sethraymond</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8551">google/flatbuffers#8551</a></li> <li>[Swift] Adds windows support by <a href="https://github.com/mustiikhalil"><code>@mustiikhalil</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8622">google/flatbuffers#8622</a></li> <li>[TS] Fix relative paths for exports by <a href="https://github.com/trumully"><code>@trumully</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8517">google/flatbuffers#8517</a></li> <li>[CI] Moves swift actions to use next by <a href="https://github.com/mustiikhalil"><code>@mustiikhalil</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8632">google/flatbuffers#8632</a></li> <li>Bugfix/new decode flag by <a href="https://github.com/fliiiix"><code>@fliiiix</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8634">google/flatbuffers#8634</a></li> <li>Use correct default type for str by <a href="https://github.com/fliiiix"><code>@fliiiix</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8623">google/flatbuffers#8623</a></li> <li>Fixed typo in quick_start.md by <a href="https://github.com/Dylan-Gallagher"><code>@Dylan-Gallagher</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8592">google/flatbuffers#8592</a></li> <li>Fix typo in code comment by <a href="https://github.com/fliiiix"><code>@fliiiix</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8549">google/flatbuffers#8549</a></li> <li>Update README logo path by <a href="https://github.com/gio3k"><code>@gio3k</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8602">google/flatbuffers#8602</a></li> <li>[Python] Avoid include own type by <a href="https://github.com/fliiiix"><code>@fliiiix</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8625">google/flatbuffers#8625</a></li> <li>[Swift] Fixes inlining & module importing by <a href="https://github.com/mustiikhalil"><code>@mustiikhalil</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8637">google/flatbuffers#8637</a></li> <li>Fix Enum type definition by <a href="https://github.com/fliiiix"><code>@fliiiix</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8624">google/flatbuffers#8624</a></li> <li>Fix JavaScript typo in mkdocs.yml by <a href="https://github.com/luksab"><code>@luksab</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8515">google/flatbuffers#8515</a></li> <li>[Python] Avoid double flatbuffers include in pyi files by <a href="https://github.com/fliiiix"><code>@fliiiix</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8626">google/flatbuffers#8626</a></li> <li>doc: PHP fread typo by <a href="https://github.com/rogeriolino"><code>@rogeriolino</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8566">google/flatbuffers#8566</a></li> <li>[Swift] Allows keepingCapacity for the underlying memory by <a href="https://github.com/mustiikhalil"><code>@mustiikhalil</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8643">google/flatbuffers#8643</a></li> <li>[Python] Enhance object API <code>__init__</code> with typed keyword arguments by <a href="https://github.com/crackcomm"><code>@crackcomm</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8615">google/flatbuffers#8615</a></li> <li>Fix start page: Backwards and Forwards Compatibility by <a href="https://github.com/fliiiix"><code>@fliiiix</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8645">google/flatbuffers#8645</a></li> <li>Support Rust edition 2024 by <a href="https://github.com/aleb"><code>@aleb</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8638">google/flatbuffers#8638</a></li> <li>Bugfix <strong>eq</strong> for numpy data types by <a href="https://github.com/fliiiix"><code>@fliiiix</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8646">google/flatbuffers#8646</a></li> <li>[Swift] Moves capacity from storage to struct by <a href="https://github.com/mustiikhalil"><code>@mustiikhalil</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8650">google/flatbuffers#8650</a></li> <li>[Swift] Fixes load from misaligned raw pointer by <a href="https://github.com/mustiikhalil"><code>@mustiikhalil</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8649">google/flatbuffers#8649</a></li> <li>Fix native_type non-native_inline fields, add tests by <a href="https://github.com/souryavarenya"><code>@souryavarenya</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8655">google/flatbuffers#8655</a></li> <li>Remove stray required in docs by <a href="https://github.com/fliiiix"><code>@fliiiix</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8663">google/flatbuffers#8663</a></li> <li>Doc fix verifier example code for cpp by <a href="https://github.com/fliiiix"><code>@fliiiix</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8664">google/flatbuffers#8664</a></li> <li>docs: fix broken link in readme by <a href="https://github.com/Nugine"><code>@Nugine</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8656">google/flatbuffers#8656</a></li> <li>Fix small typo in word JavaScript (JavasScript -> JavaScript) by <a href="https://github.com/isaiahpettingill"><code>@isaiahpettingill</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8530">google/flatbuffers#8530</a></li> <li>Add Rust reflection documentation by <a href="https://github.com/candysonya"><code>@candysonya</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8536">google/flatbuffers#8536</a></li> <li>CMakeLists: include(CheckSymbolExists) so check_symbol_exists() will work by <a href="https://github.com/vzjc"><code>@vzjc</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8580">google/flatbuffers#8580</a></li> <li>Fix: Actually call ValidateOptions by <a href="https://github.com/thejtshow"><code>@thejtshow</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8665">google/flatbuffers#8665</a></li> <li>Update TS codegen - change <code>getFullyQualifiedName</code> return type from string to string literal by <a href="https://github.com/rametta"><code>@rametta</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8421">google/flatbuffers#8421</a></li> <li>[CI] Fixes swift tests on windows by <a href="https://github.com/mustiikhalil"><code>@mustiikhalil</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8685">google/flatbuffers#8685</a></li> <li>fix(go/grpc): avoid panic on short FlatBuffers input by <a href="https://github.com/thevilledev"><code>@thevilledev</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8684">google/flatbuffers#8684</a></li> <li>Bugfix: grpc supress incorrect warning by <a href="https://github.com/fliiiix"><code>@fliiiix</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8669">google/flatbuffers#8669</a></li> <li>gRPC callbackService support added by <a href="https://github.com/shankeleven"><code>@shankeleven</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8666">google/flatbuffers#8666</a></li> <li>[C#] Fix union verifier by <a href="https://github.com/TorsteinTenstadNorsonic"><code>@TorsteinTenstadNorsonic</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8593">google/flatbuffers#8593</a></li> <li>Add bounds checking to a C# method where it was missing by <a href="https://github.com/CurtHagenlocher"><code>@CurtHagenlocher</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8673">google/flatbuffers#8673</a></li> <li>[C#] Improve Span<> utilization by <a href="https://github.com/bigjt-dev"><code>@bigjt-dev</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8588">google/flatbuffers#8588</a></li> <li>[C#] Added ToSizedArrayPadded(int padLeft, int padRight) to ByteBuffers to avoid unnecessary copying. by <a href="https://github.com/petersvp"><code>@petersvp</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8658">google/flatbuffers#8658</a></li> <li>fix(idl_gen_ts): bool to number conversion in mutable API (<a href="https://redirect.github.com/google/flatbuffers/issues/8676">#8676</a>) by <a href="https://github.com/nurbo"><code>@nurbo</code></a> in <a href="https://redirect.github.com/google/flatbuffers/pull/8677">google/flatbuffers#8677</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/google/flatbuffers/blob/master/CHANGELOG.md">flatbuffers's changelog</a>.</em></p> <blockquote> <h2>[25.9.23] (September 23 2025)(<a href="https://github.com/google/flatbuffers/releases/tag/v25.9.23">https://github.com/google/flatbuffers/releases/tag/v25.9.23</a>)</h2> <ul> <li>flatc: <code>--grpc-callback-api</code> flag generates C++ gRPC Callback API server <code>CallbackService</code> skeletons AND client native callback/async stubs (unary + all streaming reactor forms) (opt-in, non-breaking, issue <a href="https://redirect.github.com/google/flatbuffers/issues/8596">#8596</a>).</li> <li>Swift - Adds new API to reduce memory copying within swift (<a href="https://redirect.github.com/google/flatbuffers/issues/8484">#8484</a>)</li> <li>Rust - Support Rust edition 2024 (<a href="https://redirect.github.com/google/flatbuffers/issues/8638">#8638</a>)</li> </ul> <h1>[:C++] - Use the Google Style for clang-format without exceptions (<a href="https://redirect.github.com/google/flatbuffers/issues/8706">#8706</a>)</h1> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="1872409707"><code>1872409</code></a> FlatBuffers Version 25.9.23 (<a href="https://redirect.github.com/google/flatbuffers/issues/8708">#8708</a>)</li> <li><a href="c427e1a65d"><code>c427e1a</code></a> Bump the npm_and_yarn group across 1 directory with 2 updates (<a href="https://redirect.github.com/google/flatbuffers/issues/8704">#8704</a>)</li> <li><a href="caf3b494db"><code>caf3b49</code></a> bulk code format fix (<a href="https://redirect.github.com/google/flatbuffers/issues/8707">#8707</a>)</li> <li><a href="0e047869da"><code>0e04786</code></a> Use the Google Style for clang-format without exceptions (<a href="https://redirect.github.com/google/flatbuffers/issues/8706">#8706</a>)</li> <li><a href="881eaab706"><code>881eaab</code></a> Revert back to use the latest from the swiftly ci (<a href="https://redirect.github.com/google/flatbuffers/issues/8702">#8702</a>)</li> <li><a href="48eccb83db"><code>48eccb8</code></a> fix(idl_gen_ts): bool to number conversion in mutable API (<a href="https://redirect.github.com/google/flatbuffers/issues/8677">#8677</a>)</li> <li><a href="3c0511fa6a"><code>3c0511f</code></a> [C#] Added ToSizedArrayPadded(int padLeft, int padRight) to ByteBuffers to av...</li> <li><a href="82396fa0fe"><code>82396fa</code></a> [C#] Improve Span<> utilization (<a href="https://redirect.github.com/google/flatbuffers/issues/8588">#8588</a>)</li> <li><a href="a6b337f803"><code>a6b337f</code></a> Add bounds checking to a method where it was missing (<a href="https://redirect.github.com/google/flatbuffers/issues/8673">#8673</a>)</li> <li><a href="35230bd70c"><code>35230bd</code></a> [C#] Fix union verifier (<a href="https://redirect.github.com/google/flatbuffers/issues/8593">#8593</a>)</li> <li>Additional commits viewable in <a href="https://github.com/google/flatbuffers/compare/v25.2.10...v25.9.23">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
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 Unicorn Engine (or the icicle-emu 🆕).
Try it out: sogen.dev
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(currently broken 😕)
- Supports both full state serialization and
- 💻 Debugging Interface
- Implements GDB serial protocol for integration with common debugging tools (IDA Pro, GDB, LLDB, VS Code, ...)
Preview
YouTube Overview
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


