这是一个强大的两步式文件恢复与管理工具。它可以自动识别被勒索病毒(如 .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.txt2. 配置 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_KEY和ARK_ENDPOINT_ID也同样受支持。
整个系统的最佳实践分为四个阶段:恢复后缀 -> (可选)转换旧版Office -> AI 提取名称 -> 执行重命名。
该程序通过多层深度检测(文本、图片、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 格式(如 .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 文件(默认保留)。
该程序读取前两步处理好的成功报告,并自动解析 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: 针对图片识别的额外提示词(例如:'这是一批旅游风景照,请以地点命名')。- (默认行为:若不带参数,则自动选取最新的成功或提取报告进行处理)
最后一步,根据第二步 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/ # 所有程序的运行日志
程序采用插件化设计,极易扩展:
- 零代码扩展:只需在
signatures.yaml中添加该文件头特征的 16 进制签名(Hex Pattern)即可。 - 代码级扩展:在
detectors/目录下创建一个继承自BaseDetector的 Python 类,程序会自动发现并加载它。