Skip to content

articuly/recover_ee7_files

Repository files navigation

EE7 文件后缀恢复与 AI 智能重命名系统

这是一个强大的两步式文件恢复与管理工具。它可以自动识别被勒索病毒(如 .ee7)篡改的文件真实格式并恢复后缀,同时能通过 AI 读取文档内容,智能地为文件重新命名。

✨ 核心特点

  • 极高的识别率:基于文件头特征、OLE2 结构、ZIP 嵌套深度分析以及 python-magic 的多级判定责任链,能够精准找回 99% 的常见与特殊格式。
  • AI 智能重命名:无缝对接大语言模型(支持多模态视觉能力),不仅能提取文本,还能对扫描版 PDF 和纯图片进行视觉内容理解,为您推断出清晰明了的书名、标题或地标名称。
  • 完善的防崩溃容灾机制:内置主备两套 AI API 自动无缝切换,遇欠费、限流不中断。自动检测并跳过被加密的压缩包等无效提取行为。
  • 安全的无缝冲突处理:执行文件改名时不仅深度清洗掉 Windows 命名非法字符与系统保留字,遭遇同名文件时还会自动为您加上 (1)(2) 等序号。
  • 高可配的报告体系:每次处理都伴随详尽的 .log 追踪日志以及 _RC.csv / _FAIL.csv 格式的执行报表。可随时进行 --dry-run 试运行以评估效果。

⚙️ 环境准备

请确保您的系统已安装 Python 3.8 或更高版本。

1. 安装依赖 在项目根目录运行以下命令安装所需的所有库:

pip install -r requirements.txt

2. 配置 AI 环境变量 (可选但推荐) 如需使用 AI 辅助识别格式或智能提取书名,请在系统或 .env / config.py 中配置 API 密钥。支持主备双路容灾切换:

  • 主 API: AI_API_KEY_1, AI_MODEL_1, AI_BASE_URL_1
  • 备用 API: AI_API_KEY_2, AI_MODEL_2, AI_BASE_URL_2
  • 早期配置项 ARK_API_KEYARK_ENDPOINT_ID 也同样受支持。

🚀 核心工作流:四步走

整个系统的最佳实践分为四个阶段:恢复后缀 -> (可选)转换旧版Office -> AI 提取名称 -> 执行重命名

阶段一:恢复文件后缀 (recover_ee7.py)

该程序通过多层深度检测(文本、图片、ZIP/Office 解包、二进制幻数等)找回文件的真实格式。

常用命令:

# 试运行(只分析,不实际修改硬盘文件)
python recover_ee7.py --input "C:\您的中毒文件夹" --dry-run

# 仅提取名称(不进行后缀识别与重命名,只生成报告)
python recover_ee7.py --input "C:\您的中毒文件夹" --name-only

# 实际执行后缀恢复
python recover_ee7.py --input "C:\您的中毒文件夹" --recursive
  • 输入:被篡改的 .ee7 文件。
  • 输出:文件后缀被修复。同时在 result/ 目录下生成处理报告(如 ..._RC.csv 成功报告,..._FAIL.csv 失败报告,或 ..._NAME.csv 名称提取报告)。

所有参数说明:

  • -i, --input PATH : (必填) 待处理的目录或单个文件路径。
  • -s, --suffix SUFFIX : 被篡改的后缀名(默认:ee7)。
  • -r, --recursive : 递归处理子目录。
  • -d, --dry-run : 试运行模式,只分析识别,不实际修改文件名。
  • -n, --name-only : 仅提取名称模式,不进行后缀识别与重命名。

阶段二(可选):旧版 Office 文件格式转换 (office_converter.py)

由于部分勒索病毒加密的文件恢复后可能是旧版的 Office 格式(如 .doc, .xls, .ppt),这些格式在后续处理或阅读时可能存在兼容性问题。本工具提供了专用的转换器,能够通过调用本地 Office 将它们无缝转换为现代格式(.docx, .xlsx, .pptx)。

主要功能:

  • 支持直接转换整个目录下的旧版文件。
  • 支持读取阶段一生成的 _RC.csv 报告,针对性地仅转换那些被识别为 ole_office 的恢复文件,并自动将转换后的新文件名和后缀更新回原 CSV 报告中,确保整个工作流的连贯性。

常用命令:

# 根据阶段一生成的报告进行针对性转换(推荐)
python office_converter.py -i result/您的报表_RC.csv

# 根据阶段一生成的报告进行转换,并在成功后删除旧格式文件
python office_converter.py -i result/您的报表_RC.csv -d

# 转换指定目录下的所有旧版 Office 文件
python office_converter.py -p "C:\您的文档目录"

# 递归转换指定目录及其子目录,并在成功后删除旧文件
python office_converter.py -p "C:\您的文档目录" -r -d

所有参数说明:

  • -p, --path PATH : 要转换的文件目录路径(与 -i 二选一)。
  • -i, --input FILE : 包含文件信息的 CSV 报告路径(与 -p 二选一)。
  • -r, --recursive : 是否递归处理子目录。
  • -d, --delete : 转换成功后是否自动删除旧版 Office 文件(默认保留)。

阶段三:AI 智能识别名称 (name_identify.py)

该程序读取前两步处理好的成功报告,并自动解析 PDF、Word、EPUB、MOBI 等文档内容,调用 AI 提取出文档的真实标题。对于加密的压缩包等文件,能够自动识别并跳过以防阻塞。

常用命令:

# 自动处理 result/ 目录下所有待处理的报表
python name_identify.py -a
# 仅处理指定的单个报表
python name_identify.py -i result/您的报表_RC.csv
  • 输入result/ 目录下的 CSV 报告。
  • 输出:将 AI 提取的名称填入报表。完成后,报表会被重命名为 _name.csv。同时在 name_process/ 目录下生成待重命名的执行清单。

所有参数说明:

  • -i, --input FILE : 指定单个 result/ 目录下的 CSV 报告文件。
  • -a, --all : 自动处理 result/ 目录下所有未完成的成功报告。
  • -d, --dry-run : 试运行模式,仅打印预览 AI 提取的结果,不写入文件。
  • -p, --image-prompt : 针对图片识别的额外提示词(例如:'这是一批旅游风景照,请以地点命名')。
  • (默认行为:若不带参数,则自动选取最新的成功或提取报告进行处理)

阶段四:执行文件重命名 (name_rename.py)

最后一步,根据第二步 AI 提取的名称(或您在 CSV 中手动填写的名称),真正将文件重命名为易读的标题。

防冲突机制:如果新名字与现有文件冲突,程序不会中断报错,而是会自动为其追加序号(如 (1), (2))并执行重命名。

常用命令:

# 试运行(在终端预览改名效果)
python name_rename.py -a -d
# 执行重命名:处理 name_process/ 下所有待执行的报表
python name_rename.py -a
# 单文件重命名:直接对单个文件进行内容提取、AI 识别并重命名
python name_rename.py -i "E:\Documents\课件\第一讲.pptx" -p "这是大学物理课件,请提取讲座主题"
  • 输入name_process/ 目录下的待处理清单,或单个文件路径。
  • 输出:您的文件将被赋予清晰、真实的名称!处理完的清单会被标记为 _done.csv

所有参数说明:

  • -i, --input FILE : 指定单个 name_process/ 目录下的处理清单文件,或单文件路径。
  • -a, --all : 处理 name_process/ 目录下所有未完成的改名清单。
  • -d, --dry-run : 试运行模式,在终端预览改名效果,不真正修改硬盘文件。
  • -p, --prompt : (仅单文件模式有效)附加提示词。

📁 目录结构速览

recover_ee7_files/
├── recover_ee7.py        # [阶段一] 后缀恢复核心程序
├── office_converter.py   # [阶段二] 旧版 Office 格式转新版程序
├── name_identify.py      # [阶段三] AI 名称提取核心程序
├── name_rename.py        # [阶段四] 文件重命名执行核心程序
├── config.py             # 全局配置(API、映射表等)
├── signatures.yaml       # 自定义文件头签名规则,可免代码扩展格式
├── ai_service.py         # AI 接口服务封装模块
├── detector_chain.py     # 格式探测责任链模块
├── detectors/            # 各种格式的检测器插件(文本、图片、Office、ZIP等)
├── identifiers/          # 各种格式的内容提取器(PDF、Word、图片等)
├── result/               # 存放阶段一生成的原始分析报表
├── name_process/         # 存放阶段三生成的待重命名/冲突报表
└── logs/                 # 所有程序的运行日志

💡 进阶:如何增加新格式识别?

程序采用插件化设计,极易扩展:

  1. 零代码扩展:只需在 signatures.yaml 中添加该文件头特征的 16 进制签名(Hex Pattern)即可。
  2. 代码级扩展:在 detectors/ 目录下创建一个继承自 BaseDetector 的 Python 类,程序会自动发现并加载它。

About

一款强大的勒索病毒文件恢复与管理工具。它能精准识别并恢复被篡改(如 .ee7)的文件真实格式后缀,并结合 AI 多模态大模型智能读取文档或图片内容,实现文件的自动化、语义化重命名。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages