0p4n1k/Noctyra
GitHub: 0p4n1k/Noctyra
一款基于抽象语法树的模块化 Python 代码去混淆框架,通过可插拔转换器流水线将混淆代码还原为可读形式。
Stars: 13 | Forks: 0
# Noctyra



Noctyra 是一个基于 AST 的框架,专为代码转换和去混淆而设计。它提供了一个模块化的流水线,通过解析复杂的表达式和逻辑,来分析和简化 Python 源代码。
## 概述
该项目旨在为处理 Python 的抽象语法树提供一个灵活的环境。通过采用一系列可插拔的转换器,Noctyra 可以:
- 简化嵌套的逻辑和条件。
- 解析静态值和常见的编码模式。
- 将动态执行块展开为可读的代码。
- 优化和清理混淆的构造。
## 入门指南
### 前置条件
请确保已安装 `uv` 以进行依赖管理。
```
uv sync
```
### 运行流水线
要处理目标脚本,请使用以下命令:
```
python main.py [options]
```
**选项:**
- `file`:输入的 Python 文件路径(必填)。
- `--output`:转换后代码的文件名(默认:`out.py`)。
- `--iterations`:设置固定的转换遍数(默认:`0` 表示自动检测)。
- `--max-iterations`:在自动模式下限制遍数(默认:`100`)。
- `--debug`:启用详细日志记录以调试转换。(看起来很酷)
## 开发
本项目使用 `uv` 进行依赖管理,并使用 `Makefile` 处理常见任务。
### 安装说明
```
uv sync --all-extras --dev
```
### 质量控制
在提交 PR 或推送更改之前,请确保所有检查均已通过:
- **运行测试**:`make test`
- **代码检查与格式化**:`make format`
- **类型检查**:`make typecheck`
*(Windows 用户:这些命令可以通过 `make.bat` 自动运行。)*
### CI/CD
每次推送时都会通过 GitHub Actions 执行自动化检查,包括使用 Ruff 进行代码检查、使用 Mypy 进行类型检查,以及使用 Pytest 进行单元测试。
## 安全提示
Noctyra 包含一个带有基本资源限制的内部求值引擎。然而,在处理不受信任的代码时,强烈建议在隔离环境(例如容器或沙箱)中运行流水线,以防止潜在的副作用或资源耗尽。
*Readme.md 由 Gemini CLI 和我共同维护*
标签:odt, Python, 云安全监控, 代码优化, 代码美化, 代码转换, 反混淆, 开源, 抽象语法树, 无后门, 脱壳, 自动化payload嵌入, 静态分析, 静态去混淆