样本(虚拟机运行)(编号:250901):https://pan.baidu.com/s/1MscuyILdXfBQG4zQPqIv3w?pwd=8qhr
勒索病毒会加密什么文件?
通过 IDA 查找 main 函数,找到一段可疑代码:
fopen("ransom_key.txt", "w")
fopen 是 C 语言标准库中用于打开文件的函数,其第二个参数指定文件打开模式。若文件 ransom_key.txt 不存在,则会主动创建该文件;若文件已存在,则会清空原文件内容(覆盖模式)。

双击这一行代码,向上查找到可疑代码:
db '%s\*.txt',0
格式化字符串,用于构建路径匹配规则 "%s\*.txt"(例如 C:\test\*.txt),这表明程序会扫描指定目录下所有 .txt 格式的文件,是勒索软件针对特定文件类型(此处为文本文件)进行加密的关键标志。

按下 Ctrl + X 显示交叉引用列表,按下 F5 转换成 C语言。


根据反编译后的代码就能确定加密的是 .txt 后缀所有的文件,函数整体分为两大阶段:处理当前目录的 .txt 文件 → 递归处理子目录,形成完整的文件扫描加密链路。
阶段 1:扫描并加密当前目录下的 .txt 文件
这部分逻辑负责定位当前目录中所有 .txt 文本文件,对其进行加密,并替换为加密后的 .enc 文件。
阶段 2:递归扫描并处理子目录
这部分逻辑负责进入当前目录的所有子目录,重复执行上述加密流程(递归调用自身),确保所有子目录中的 .txt 文件都被加密。

这个是典型的勒索软件加密模块,关键恶意操作包括:
- 精准定位 .txt 文本文件(通过 *.txt 匹配),说明其目标是用户文档类数据;
- 不仅处理当前目录,还深入所有子目录,确保无遗漏(通过递归调用自身实现);
- 采用16 字节密钥的异或加密(i & 0xF 实现密钥循环),加密后的数据写入 .enc 文件;
- 加密完成后立即删除原 .txt 文件(remove(Source)),使受害人只能依赖攻击者提供的解密方式;
- 加密文件头部写入固定魔数(1381190999)和时间戳,可能用于后续验证文件是否被成功加密。