这个项目能做什么
Sogen 是一款用户态模拟器,无需真实操作系统即可运行 Windows 和 Linux 程序,并对其执行过程提供完整的可见性与控制力。它不会重新实现 OS API,而是在 CPU 和系统调用层模拟二进制文件,同时运行实际的系统 DLL(例如 ntdll、kernel32、user32),确保行为与真实操作系统高度匹配。
主要能力包括:
- 真实系统 DLL:使用真正的 Windows 系统库,而非存根。
- 挂钩与重写:拦截并修改内存、指令、系统调用和 API 调用。
- 忠实的内部机制:支持 PE 加载(重定位、TLS)、Windows 内存类型、SEH、线程、注册表、文件系统和网络。
- 快照与恢复:完整状态序列化、快速内存快照以及 minidump 加载。
- 跨平台:可在 Windows、Linux、macOS、Android、iOS 和浏览器中运行,支持 x86-64 和 arm64。
- 确定性执行:可精确到单条指令地复现运行过程。
它提供多种 CPU 后端:Unicorn Engine、icicle-emu、Hyper-V(WHP)、KVM 和 FEX。可通过 GDB 协议(例如配合 IDA Pro)或内置浏览器调试器进行调试;调试运行在模拟器层面,因此对反调试检测保持不可见。原生 GUI 应用和游戏可在沙箱中运行,并借助 GPU 半虚拟化实现 3D 加速,以及通过 DXVK 转换到 Vulkan 来支持 Direct3D 8/9/10/11。
Python 绑定可通过 pip install sogen 获取,同时需要一个模拟根目录(可下载或自行创建)。非官方 Dart 绑定位于单独的代码仓库中。该项目使用 C++ 构建,并包含面向 Windows 与 Visual Studio 的快速入门指南,步骤包括带子模块克隆、使用 CMake preset、构建,以及创建用于分析的注册表转储。
评论
0 评分人数达到10人后显示
登录后参与讨论。