如何在沙盘里分析一个程序释放了哪些文件

By admin 2026年11月7日

如何在沙盘里分析一个程序释放了哪些文件

在沙盘中分析程序释放了哪些文件,核心是记录运行前后的文件系统变化,并把变化关联到程序及其子进程。

通用流程

  1. 准备干净环境

    • 使用隔离的虚拟机或沙盘,先创建快照。
    • 记录程序运行前的目录状态;尽量不要放入真实个人文件。
    • 运行程序时观察完整流程,包括弹窗、安装步骤和延迟行为。
  2. 记录文件操作
    重点关注:

    • 新建、写入、覆盖文件
    • 临时文件和缓存
    • 重命名、移动、删除
    • 子进程创建的文件
    • 用户目录、临时目录、启动目录、系统目录中的变化
  3. 比对运行前后
    检查运行前后目录清单、时间戳和文件哈希。这样能发现新增文件,也能发现被覆盖的文件。若程序会延迟释放文件,可在运行后继续观察一段时间。

Windows

可用 Process Monitor(Procmon):

  • 以管理员身份启动,清空现有事件后开始捕获。
  • 用 Process Tree 找到目标程序及其子进程,并按进程名或 PID 过滤。
  • 重点查看 CreateFile、WriteFile、SetRenameInformationFile、SetDispositionInformationFile 等事件。
  • 检查事件路径、操作结果和进程名;保存 .PML 日志供后续分析。

也可以使用 Windows Sandbox 或其他沙盘的“文件系统变化 / 行为报告”功能。注意:只按主程序名过滤可能漏掉由它启动的子进程。

Linux

可用 strace 跟踪文件相关系统调用,例如:

strace -ff -o trace -e trace=%file ./program

日志中可搜索 openat、creat、rename、unlink 等调用及对应路径。strace 记录的是程序尝试执行的操作,需结合返回值判断操作是否成功;写入内容和最终文件状态还应通过文件系统比对确认。

最后确认

对疑似释放出的文件记录路径、大小、时间戳、SHA-256 哈希,必要时复制出来做静态分析。不要仅凭“文件被打开”就认定它是新释放的文件:程序也可能只是读取了该文件。