ogre2007/machina

GitHub: ogre2007/machina

基于 Unicorn 引擎的 macOS arm64 Mach-O 恶意软件模拟分析工具,通过合成运行时环境和结构化 JSONL 追踪输出实现无真实硬件依赖的恶意行为动态观测。

Stars: 0 | Forks: 0

# Machina `Machina` 是一个 Rust 项目,用于模拟 macOS `arm64` Mach-O 二进制文件,重点关注恶意软件分析。 该项目有意不再作为通用的 Qiling 移植。其当前的范围是: - `arm64` macOS 用户态二进制文件 - 基于 Unicorn 的 CPU 模拟 - 合成 macOS 运行时服务 - JSONL 优先的追踪与检测工作流 - 针对真实样本(包括窃密木马)的夹具驱动兼容性测试 ## 仓库布局 - [src/bin/machina.rs](D:/dev/quiling/qiling/src/bin/machina.rs):CLI 入口 - [src/macos](D:/dev/quiling/qiling/src/macos):macOS 模拟代码 - [src/macos/core/mod.rs](D:/dev/quiling/qiling/src/macos/core/mod.rs):架构无关的模拟流水线、追踪以及运行时门面 - [src/macos/arch_arm64/mod.rs](D:/dev/quiling/qiling/src/macos/arch_arm64/mod.rs):arm64 特定模块的分组视图 - [src/macos/platform_apple/mod.rs](D:/dev/quiling/qiling/src/macos/platform_apple/mod.rs):Apple 兼容层的分组视图 - [src/macos/guest_model/mod.rs](D:/dev/quiling/qiling/src/macos/guest_model/mod.rs):客户端文件系统与内存辅助工具的分组视图 - [fixtures](D:/dev/quiling/qiling/fixtures):开发样本语料库和分析笔记 - [docs/sample-status.md](D:/dev/quiling/qiling/docs/sample-status.md):当前夹具状态和观察到的行为 ## Unicorn 依赖 Machina 使用已发布的 `unicorn-engine` / `unicorn-engine-sys` crate 作为普通的 Cargo 依赖项。 仓库中不再包含供应商提供的 Unicorn 源码树,Unicorn 也不再作为 git 子模块进行管理。[build.rs](D:/dev/quiling/qiling/build.rs) 仅处理在 Cargo 构建 crate 后 Windows 端 `unicorn.dll` 的放置。 ## 日志记录 默认的运行时输出预期为通过追踪总线的结构化 JSONL。 人类可读的 `println!` 诊断信息仅用于遗留目的,应被视为调试输出,随着时间的推移将被移除或添加条件控制。 实用的控制开关: - `MACHINA_PLUGIN_TRACE=1`:启用插件追踪总线 - `MACHINA_TRACE_FORMAT=jsonl`:强制 JSONL 输出 - `MACHINA_TRACE_FORMAT=human`:用于调试的旧版人类可读接收器 - `MACHINA_INDIRECT_BRANCH_MODE=fast`:默认值;跳过开销较大的间接分支清理器 - `MACHINA_INDIRECT_BRANCH_MODE=sanitize`:启用间接分支清理器,用于调试带有签名或标记的分支目标 ## 构建 ``` cargo build --bin machina ``` ## 运行 ``` cargo run --bin machina -- fixtures\macos\bin\arm64_hello ``` ## 本地 AMOS 集成检查 生成 JSONL 追踪: ``` .\target\debug\machina.exe fixtures\macos\bin\2d0dda75bfc90e7ffda72640eb32c7ff9f51c90c30f4a6d1e05df93e58848f36.macho > amos-trace.jsonl ``` 验证执行是否到达了窃密木马逻辑和私有文件访问: ``` powershell -ExecutionPolicy Bypass -File scripts\ci\check_amos_trace.ps1 amos-trace.jsonl ``` ## 样本语料库 项目在 [fixtures/macos/bin](D:/dev/quiling/qiling/fixtures/macos/bin) 中保存了一个小型的本地语料库。 目前两个重要的分析目标是: - `2d0dda75bfc90e7ffda72640eb32c7ff9f51c90c30f4a6d1e05df93e58848f36.macho` AMOS 窃密木马样本,用于驱动浏览器/钱包兼容性开发 - `0393e898f4425195d780346634e619b80f283a8223b9724db56dee87afbba486.macho` 大型 arm64 样本,用于更深层次的运行时和合成 API 覆盖开发 参见 [fixtures/README.md](D:/dev/quiling/qiling/fixtures/README.md) 和 [docs/sample-status.md](D:/dev/quiling/qiling/docs/sample-status.md)。 ## 项目状态 当前可正常工作: - arm64 Mach-O 加载与执行 - 合成导入、系统调用、客户端文件系统模型 - JSONL 插件事件 - 针对 AMOS 类型路径的恶意软件逻辑的真实样本执行进展 仍在进行中: - 对所有剩余旧版 stdout 诊断信息进行更深层次的规范化 - 更广泛的 macOS 合成 API 覆盖 - 目录密集型配置文件模拟和更丰富的构件捕获 - 对继承自 Qiling 时代代码库的剩余旧版兼容层进行公开发布前的清理 ## 许可证 GPL-2.0
标签:AMSI绕过, ARM64架构, CPU模拟, DAST, DNS 反向解析, JSONL日志, Mach-O文件, macOS安全, macOS恶意软件, macOS运行时模拟, Rust语言, Unicorn引擎, 二进制分析, 云安全运维, 云资产清单, 信息窃取器分析, 可视化界面, 威胁检测, 安全研究工具, 恶意软件分析, 时序数据库, 沙箱, 用户态模拟, 网络安全, 自动化分析, 跨站脚本, 逆向工程, 通知系统, 隐私保护