dod-cyber-crime-center/rugosa
GitHub: dod-cyber-crime-center/rugosa
一个基于纯 Python 模拟引擎的静态恶意软件分析库,通过分支路径追踪技术实现对 x86/ARM 二进制代码的局部模拟分析,并集成 YARA 搜索、字符串提取等实用功能。
Stars: 10 | Forks: 3
# Rugosa
Rugosa 是一个使用与反汇编器无关的
[dragodis](https://github.com/dod-cyber-crime-center/dragodis) API 开发的静态恶意软件分析库和工具。它集成了一个二进制模拟框架,
以及用于在反汇编代码中进行正则表达式和 YARA 搜索、字符串提取和函数发现的实用工具。
这些功能增强了全面恶意软件分析和元数据提取的能力。
Rugosa 利用内部完全使用 Python 开发的模拟引擎,实现了对执行上下文的完全控制,
并为模拟产物提供了高级抽象。
它采用了一种基于分支路径追踪的目标方法来模拟部分代码,而无需完全
模拟前置代码或修改二进制文件以适应此类控制流。
目前,支持 x86 和 ARM 处理器。
## 安装
```
pip install rugosa
```
您还需要按照 [Dragodis 的安装说明](https://github.com/dod-cyber-crime-center/dragodis/blob/master/docs/install.md)设置后端反汇编器。
## 实用工具
Rugosa 包含以下实用工具:
- [模拟](./docs/CPUEmulation.md)
- [额外反汇编接口](./rugosa/disassembly.py)
- [正则表达式](./docs/Regex.md)
- [字符串](./rugosa/strings.py)
- [YARA](./docs/YARA.md)
## 配置
所有选项均可通过 [settings.toml](src/rugosa/config/settings.toml) 文件进行配置。
可以修改此文件来配置 Rugosa。
Rugosa 会在 `~/.config/rugosa/settings.toml` 或 `%LOCALAPPDATA%\dc3\rugosa\settings.toml`
处查找用户定义的配置文件,以覆盖默认设置。
要查看当前配置,请运行以下命令:
```
python -m rugosa.config list
```
运行以下命令以在文本编辑器中打开文件来编辑配置。
(这会将默认配置复制到用户目录中)
```
python -m rugosa.config edit
```
要创建新的用户配置文件而不进行编辑:
```
python -m rugosa.config create
```
我们使用了 [Dynaconf](https://dynaconf.com),它提供了诸如使用带有 `RUGOSA_` 前缀的环境变量进行配置等便利功能。
例如,要更改模拟期间使用的计算机名称:
```
export RUGOSA_MACHINE__COMPUTER_NAME=BOB_PC # '__' to access nested field.
```
## 交互式 Shell
Rugosa 包含一个使用 [cmd2](https://cmd2.readthedocs.io) 创建的交互式 Shell,用于模拟和遍历给定的二进制文件。
有关如何使用该工具的更多信息,请参阅[文档](./docs/Shell.md)。

## 模拟器插件
Rugosa 包含一个 IDA 和 Ghidra 插件,该插件提供了一个 GUI 用于使用[模拟](./docs/CPUEmulation.md)实用工具。
有关如何安装和使用该插件的更多信息,请参阅[文档](./docs/EmulatorPlugin.md)。


标签:CPU仿真, CTF安全工具, DAST, Python, Wayback Machine, x86, YARA, 二进制分析, 二进制解析, 云安全监控, 云安全运维, 云资产可视化, 云资产清单, 函数发现, 分支路径追踪, 反汇编, 字符串提取, 恶意软件仿真, 恶意软件分析, 无后门, 自动化分析, 跨站脚本, 逆向工具, 逆向工程, 静态分析