Wdestroier/sogen_dart

GitHub: Wdestroier/sogen_dart

为 Sogen 用户态二进制模拟器提供 Dart 原生 FFI 绑定,使 Dart/Flutter 开发者能够在代码中模拟运行 Windows 和 Linux 程序并拦截其 API 调用。

Stars: 2 | Forks: 0

# Sogen Dart 绑定 [Sogen](https://github.com/momo5502/sogen) 的原生 Dart FFI 绑定。 Sogen 是一个用于 Windows 和 Linux 二进制文件的用户态模拟器。每一条指令、内存访问和 API 调用都可以被 hook、检查和重写,并且整个模拟器状态都可以被快照和恢复。 Windows 和 Linux API 涵盖了工厂和后端选择、执行、 快照和序列化状态、内存和寄存器、调度、进程和 线程视图、诊断、端口、回调、模块以及底层 hook。 Windows 还提供同步的 API 观察/拦截功能。Linux 则提供 符号 hook 和调试器控制。 ## 构建 要求: - Dart 3.12 或更高版本(只需安装 Flutter) - Git - 在 Windows 上,需要安装带有 C++ 桌面开发工作负载的 Visual Studio - 在 Linux 上,需要 C++20 编译器和平台开发头文件 - 在 macOS 上,需要 Xcode 命令行工具 ## 示例 包含测试样本、DLL 等内容的现成模拟器 root 环境可从 获取。 ``` import 'package:sogen/ctypes.dart' show uint32; import 'package:sogen/windows.dart' show apiCall, createApplication; main() { final app = createApplication(r'c:/test-sample.exe', emulationRoot: './root'); final onSleep = apiCall( cc: .stdcall, params: const [uint32], cb: (call, params) { final milliseconds = params[0]; print('Sleep($milliseconds)'); }, ); app.hooks.apis['Sleep'] = onSleep; app.start(); } ```
输出 ![输出](https://static.pigsec.cn/wp-content/uploads/repos/cas/a4/a476fbf443dfe6683d1a36345b8ed13f47cc36f438f59f41b82fd717fbc0c998.png)
## 安全与许可证 Sogen 并不是一个恶意软件沙箱边界。模拟器 root 环境、路径映射、 网络映射和原生依赖可能会暴露宿主机资源。请仅运行 适合宿主机环境的工作负载。 Sogen 及其绑定均基于 `GPL-2.0-only` 许可证授权。
标签:API钩子, Dart, FFI, 二进制模拟