Bumps [eslint](https://github.com/eslint/eslint) from 9.30.0 to 9.32.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/eslint/eslint/releases">eslint's releases</a>.</em></p> <blockquote> <h2>v9.32.0</h2> <h2>Features</h2> <ul> <li><a href="1245000c5a"><code>1245000</code></a> feat: support explicit resource management in core rules (<a href="https://redirect.github.com/eslint/eslint/issues/19828">#19828</a>) (fnx)</li> <li><a href="0e957a7b55"><code>0e957a7</code></a> feat: support typescript types in accessor rules (<a href="https://redirect.github.com/eslint/eslint/issues/19882">#19882</a>) (fnx)</li> </ul> <h2>Bug Fixes</h2> <ul> <li><a href="960fd40dfd"><code>960fd40</code></a> fix: Upgrade <code>@eslint/js</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19971">#19971</a>) (Nicholas C. Zakas)</li> <li><a href="bbf23fa2f1"><code>bbf23fa</code></a> fix: Refactor reporting into FileReport (<a href="https://redirect.github.com/eslint/eslint/issues/19877">#19877</a>) (Nicholas C. Zakas)</li> <li><a href="d4988872f3"><code>d498887</code></a> fix: bump <code>@eslint/plugin-kit</code> to 0.3.4 to resolve vulnerability (<a href="https://redirect.github.com/eslint/eslint/issues/19965">#19965</a>) (Milos Djermanovic)</li> <li><a href="f46fc6c137"><code>f46fc6c</code></a> fix: report only global references in no-implied-eval (<a href="https://redirect.github.com/eslint/eslint/issues/19932">#19932</a>) (Nitin Kumar)</li> <li><a href="7863d26b7c"><code>7863d26</code></a> fix: remove outdated types in <code>ParserOptions.ecmaFeatures</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19944">#19944</a>) (ntnyq)</li> <li><a href="317330552e"><code>3173305</code></a> fix: update execScript message in no-implied-eval rule (<a href="https://redirect.github.com/eslint/eslint/issues/19937">#19937</a>) (TKDev7)</li> </ul> <h2>Documentation</h2> <ul> <li><a href="86e7426e44"><code>86e7426</code></a> docs: Update README (GitHub Actions Bot)</li> </ul> <h2>Chores</h2> <ul> <li><a href="50de1ced9d"><code>50de1ce</code></a> chore: package.json update for <code>@eslint/js</code> release (Jenkins)</li> <li><a href="74f01a3f59"><code>74f01a3</code></a> ci: unpin <code>jiti</code> to version <code>^2.5.1</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19970">#19970</a>) (루밀LuMir)</li> <li><a href="2ab13813a7"><code>2ab1381</code></a> ci: pin <code>jiti</code> to version 2.4.2 (<a href="https://redirect.github.com/eslint/eslint/issues/19964">#19964</a>) (Francesco Trotta)</li> <li><a href="b7f7545469"><code>b7f7545</code></a> test: switch to flat config mode in <code>SourceCode</code> tests (<a href="https://redirect.github.com/eslint/eslint/issues/19953">#19953</a>) (Milos Djermanovic)</li> <li><a href="f5a35e3b7c"><code>f5a35e3</code></a> test: switch to flat config mode in eslint-fuzzer (<a href="https://redirect.github.com/eslint/eslint/issues/19960">#19960</a>) (Milos Djermanovic)</li> <li><a href="e22af8c42d"><code>e22af8c</code></a> refactor: use <code>CustomRuleDefinitionType</code> in <code>JSRuleDefinition</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19949">#19949</a>) (Francesco Trotta)</li> <li><a href="e85571730f"><code>e855717</code></a> chore: switch performance tests to hyperfine (<a href="https://redirect.github.com/eslint/eslint/issues/19919">#19919</a>) (Francesco Trotta)</li> <li><a href="2f73a23655"><code>2f73a23</code></a> test: switch to flat config mode in <code>ast-utils</code> tests (<a href="https://redirect.github.com/eslint/eslint/issues/19948">#19948</a>) (Milos Djermanovic)</li> <li><a href="c565a530f5"><code>c565a53</code></a> chore: exclude <code>further_reading_links.json</code> from Prettier formatting (<a href="https://redirect.github.com/eslint/eslint/issues/19943">#19943</a>) (Milos Djermanovic)</li> </ul> <h2>v9.31.0</h2> <h2>Features</h2> <ul> <li><a href="35cf44c22e"><code>35cf44c</code></a> feat: output full actual location in rule tester if different (<a href="https://redirect.github.com/eslint/eslint/issues/19904">#19904</a>) (ST-DDT)</li> <li><a href="a6a63259de"><code>a6a6325</code></a> feat: support explicit resource management in <code>no-loop-func</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19895">#19895</a>) (Milos Djermanovic)</li> <li><a href="4682cdc696"><code>4682cdc</code></a> feat: support explicit resource management in <code>no-undef-init</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19894">#19894</a>) (Milos Djermanovic)</li> <li><a href="58482165ea"><code>5848216</code></a> feat: support explicit resource management in <code>init-declarations</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19893">#19893</a>) (Milos Djermanovic)</li> <li><a href="bb370b8e79"><code>bb370b8</code></a> feat: support explicit resource management in <code>no-const-assign</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19892">#19892</a>) (Milos Djermanovic)</li> </ul> <h2>Bug Fixes</h2> <ul> <li><a href="07fac6cafa"><code>07fac6c</code></a> fix: retry on EMFILE when writing autofix results (<a href="https://redirect.github.com/eslint/eslint/issues/19926">#19926</a>) (TKDev7)</li> <li><a href="28cc7abbb7"><code>28cc7ab</code></a> fix: Remove incorrect RuleContext types (<a href="https://redirect.github.com/eslint/eslint/issues/19910">#19910</a>) (Nicholas C. Zakas)</li> </ul> <h2>Documentation</h2> <ul> <li><a href="664cb44ab0"><code>664cb44</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="40dbe2a43f"><code>40dbe2a</code></a> docs: fix mismatch between <code>globalIgnores()</code> code and text (<a href="https://redirect.github.com/eslint/eslint/issues/19914">#19914</a>) (MaoShizhong)</li> <li><a href="5a0069d608"><code>5a0069d</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="fef04b5c7f"><code>fef04b5</code></a> docs: Update working on issues info (<a href="https://redirect.github.com/eslint/eslint/issues/19902">#19902</a>) (Nicholas C. Zakas)</li> </ul> <h2>Chores</h2> <ul> <li><a href="3ddd454c1c"><code>3ddd454</code></a> chore: upgrade to <code>@eslint/js@9.31.0</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19935">#19935</a>) (Francesco Trotta)</li> <li><a href="d5054e5454"><code>d5054e5</code></a> chore: package.json update for <code>@eslint/js</code> release (Jenkins)</li> <li><a href="0f4a3781fe"><code>0f4a378</code></a> chore: update eslint (<a href="https://redirect.github.com/eslint/eslint/issues/19933">#19933</a>) (renovate[bot])</li> <li><a href="76c2340c36"><code>76c2340</code></a> chore: bump mocha to v11 (<a href="https://redirect.github.com/eslint/eslint/issues/19917">#19917</a>) (루밀LuMir)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/eslint/eslint/blob/main/CHANGELOG.md">eslint's changelog</a>.</em></p> <blockquote> <p>v9.32.0 - July 25, 2025</p> <ul> <li><a href="960fd40dfd"><code>960fd40</code></a> fix: Upgrade <code>@eslint/js</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19971">#19971</a>) (Nicholas C. Zakas)</li> <li><a href="50de1ced9d"><code>50de1ce</code></a> chore: package.json update for <code>@eslint/js</code> release (Jenkins)</li> <li><a href="bbf23fa2f1"><code>bbf23fa</code></a> fix: Refactor reporting into FileReport (<a href="https://redirect.github.com/eslint/eslint/issues/19877">#19877</a>) (Nicholas C. Zakas)</li> <li><a href="74f01a3f59"><code>74f01a3</code></a> ci: unpin <code>jiti</code> to version <code>^2.5.1</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19970">#19970</a>) (루밀LuMir)</li> <li><a href="d4988872f3"><code>d498887</code></a> fix: bump <code>@eslint/plugin-kit</code> to 0.3.4 to resolve vulnerability (<a href="https://redirect.github.com/eslint/eslint/issues/19965">#19965</a>) (Milos Djermanovic)</li> <li><a href="2ab13813a7"><code>2ab1381</code></a> ci: pin <code>jiti</code> to version 2.4.2 (<a href="https://redirect.github.com/eslint/eslint/issues/19964">#19964</a>) (Francesco Trotta)</li> <li><a href="b7f7545469"><code>b7f7545</code></a> test: switch to flat config mode in <code>SourceCode</code> tests (<a href="https://redirect.github.com/eslint/eslint/issues/19953">#19953</a>) (Milos Djermanovic)</li> <li><a href="f5a35e3b7c"><code>f5a35e3</code></a> test: switch to flat config mode in eslint-fuzzer (<a href="https://redirect.github.com/eslint/eslint/issues/19960">#19960</a>) (Milos Djermanovic)</li> <li><a href="f46fc6c137"><code>f46fc6c</code></a> fix: report only global references in no-implied-eval (<a href="https://redirect.github.com/eslint/eslint/issues/19932">#19932</a>) (Nitin Kumar)</li> <li><a href="86e7426e44"><code>86e7426</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="e22af8c42d"><code>e22af8c</code></a> refactor: use <code>CustomRuleDefinitionType</code> in <code>JSRuleDefinition</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19949">#19949</a>) (Francesco Trotta)</li> <li><a href="1245000c5a"><code>1245000</code></a> feat: support explicit resource management in core rules (<a href="https://redirect.github.com/eslint/eslint/issues/19828">#19828</a>) (fnx)</li> <li><a href="e85571730f"><code>e855717</code></a> chore: switch performance tests to hyperfine (<a href="https://redirect.github.com/eslint/eslint/issues/19919">#19919</a>) (Francesco Trotta)</li> <li><a href="0e957a7b55"><code>0e957a7</code></a> feat: support typescript types in accessor rules (<a href="https://redirect.github.com/eslint/eslint/issues/19882">#19882</a>) (fnx)</li> <li><a href="2f73a23655"><code>2f73a23</code></a> test: switch to flat config mode in <code>ast-utils</code> tests (<a href="https://redirect.github.com/eslint/eslint/issues/19948">#19948</a>) (Milos Djermanovic)</li> <li><a href="7863d26b7c"><code>7863d26</code></a> fix: remove outdated types in <code>ParserOptions.ecmaFeatures</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19944">#19944</a>) (ntnyq)</li> <li><a href="c565a530f5"><code>c565a53</code></a> chore: exclude <code>further_reading_links.json</code> from Prettier formatting (<a href="https://redirect.github.com/eslint/eslint/issues/19943">#19943</a>) (Milos Djermanovic)</li> <li><a href="317330552e"><code>3173305</code></a> fix: update execScript message in no-implied-eval rule (<a href="https://redirect.github.com/eslint/eslint/issues/19937">#19937</a>) (TKDev7)</li> </ul> <p>v9.31.0 - July 11, 2025</p> <ul> <li><a href="3ddd454c1c"><code>3ddd454</code></a> chore: upgrade to <code>@eslint/js@9.31.0</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19935">#19935</a>) (Francesco Trotta)</li> <li><a href="d5054e5454"><code>d5054e5</code></a> chore: package.json update for <code>@eslint/js</code> release (Jenkins)</li> <li><a href="0f4a3781fe"><code>0f4a378</code></a> chore: update eslint (<a href="https://redirect.github.com/eslint/eslint/issues/19933">#19933</a>) (renovate[bot])</li> <li><a href="664cb44ab0"><code>664cb44</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="07fac6cafa"><code>07fac6c</code></a> fix: retry on EMFILE when writing autofix results (<a href="https://redirect.github.com/eslint/eslint/issues/19926">#19926</a>) (TKDev7)</li> <li><a href="35cf44c22e"><code>35cf44c</code></a> feat: output full actual location in rule tester if different (<a href="https://redirect.github.com/eslint/eslint/issues/19904">#19904</a>) (ST-DDT)</li> <li><a href="40dbe2a43f"><code>40dbe2a</code></a> docs: fix mismatch between <code>globalIgnores()</code> code and text (<a href="https://redirect.github.com/eslint/eslint/issues/19914">#19914</a>) (MaoShizhong)</li> <li><a href="76c2340c36"><code>76c2340</code></a> chore: bump mocha to v11 (<a href="https://redirect.github.com/eslint/eslint/issues/19917">#19917</a>) (루밀LuMir)</li> <li><a href="28cc7abbb7"><code>28cc7ab</code></a> fix: Remove incorrect RuleContext types (<a href="https://redirect.github.com/eslint/eslint/issues/19910">#19910</a>) (Nicholas C. Zakas)</li> <li><a href="a6a63259de"><code>a6a6325</code></a> feat: support explicit resource management in <code>no-loop-func</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19895">#19895</a>) (Milos Djermanovic)</li> <li><a href="4682cdc696"><code>4682cdc</code></a> feat: support explicit resource management in <code>no-undef-init</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19894">#19894</a>) (Milos Djermanovic)</li> <li><a href="58482165ea"><code>5848216</code></a> feat: support explicit resource management in <code>init-declarations</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19893">#19893</a>) (Milos Djermanovic)</li> <li><a href="bb370b8e79"><code>bb370b8</code></a> feat: support explicit resource management in <code>no-const-assign</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19892">#19892</a>) (Milos Djermanovic)</li> <li><a href="5a0069d608"><code>5a0069d</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="fef04b5c7f"><code>fef04b5</code></a> docs: Update working on issues info (<a href="https://redirect.github.com/eslint/eslint/issues/19902">#19902</a>) (Nicholas C. Zakas)</li> </ul> <p>v9.30.1 - July 1, 2025</p> <ul> <li><a href="b035f747c6"><code>b035f74</code></a> chore: upgrade to <code>@eslint/js@9.30.1</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19906">#19906</a>) (Francesco Trotta)</li> <li><a href="b3dbc16563"><code>b3dbc16</code></a> chore: package.json update for <code>@eslint/js</code> release (Jenkins)</li> <li><a href="e91bb870f8"><code>e91bb87</code></a> fix: allow separate default and named type imports (<a href="https://redirect.github.com/eslint/eslint/issues/19899">#19899</a>) (xbinaryx)</li> <li><a href="ab7c62598a"><code>ab7c625</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="dae1e5bb27"><code>dae1e5b</code></a> docs: update jsdoc's link (<a href="https://redirect.github.com/eslint/eslint/issues/19896">#19896</a>) (JamesVanWaza)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="2364031090"><code>2364031</code></a> 9.32.0</li> <li><a href="a0e62e2739"><code>a0e62e2</code></a> Build: changelog update for 9.32.0</li> <li><a href="960fd40dfd"><code>960fd40</code></a> fix: Upgrade <code>@eslint/js</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19971">#19971</a>)</li> <li><a href="50de1ced9d"><code>50de1ce</code></a> chore: package.json update for <code>@eslint/js</code> release</li> <li><a href="bbf23fa2f1"><code>bbf23fa</code></a> fix: Refactor reporting into FileReport (<a href="https://redirect.github.com/eslint/eslint/issues/19877">#19877</a>)</li> <li><a href="74f01a3f59"><code>74f01a3</code></a> ci: unpin <code>jiti</code> to version <code>^2.5.1</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19970">#19970</a>)</li> <li><a href="d4988872f3"><code>d498887</code></a> fix: bump <code>@eslint/plugin-kit</code> to 0.3.4 to resolve vulnerability (<a href="https://redirect.github.com/eslint/eslint/issues/19965">#19965</a>)</li> <li><a href="2ab13813a7"><code>2ab1381</code></a> ci: pin <code>jiti</code> to version 2.4.2 (<a href="https://redirect.github.com/eslint/eslint/issues/19964">#19964</a>)</li> <li><a href="b7f7545469"><code>b7f7545</code></a> test: switch to flat config mode in <code>SourceCode</code> tests (<a href="https://redirect.github.com/eslint/eslint/issues/19953">#19953</a>)</li> <li><a href="f5a35e3b7c"><code>f5a35e3</code></a> test: switch to flat config mode in eslint-fuzzer (<a href="https://redirect.github.com/eslint/eslint/issues/19960">#19960</a>)</li> <li>Additional commits viewable in <a href="https://github.com/eslint/eslint/compare/v9.30.0...v9.32.0">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, ...)
Note
The project is still in a very early, prototypical state. The code still needs a lot of cleanup and many features and syscalls need to be implemented. However, constant progress is being made :)
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


