查看进程创建的临时文件

时间:2009-10-20 15:47:45

标签: debugging parsing reverse-engineering

我正在尝试对一个执行一些基本解析的程序进行逆向工程:text in,text out。我有一个可执行的“参考实现”和必须是不同版本的源代码,因为编译的源输出!=可执行输出。

该过程在多步解析过程中非常快速地创建和删除临时文件。如果我可以查看单个临时文件,我可以获得一些很好的诊断数据来缩小我的源与二进制文件的不同之处。

有没有办法做以下任何一种情况?

  • 冻结目录以便文件创建可行,但文件删除将无声地失败?
  • 以“慢动作”运行程序,以便查看它创建的文件?
  • 记录程序执行的所有操作,包括写入文件的所有数据?

3 个答案:

答案 0 :(得分:2)

运行NTFS Undelete之类的工具可以让您有机会恢复正在创建然后删除的临时文件。将此与来自Sysinternals的ProcMon结合使用,以获得正确的文件名。

答案 1 :(得分:1)

你没有提到你正在做什么操作系统,但假设你正在使用Windows ......

您可以使用Process ExplorerProcess Monitor等SysInternals工具来更好地了解所访问的文件。据我所知,文件夹上没有“只写”选项。为了“减慢”文件,你只需要使用较慢的计算机。对于日志记录,SysInternals工具将提供相当多的帮助。一旦有了正在创建的文件名,就可以尝试通过打开另一个进程的流中的文件来阻止删除它们。这会阻止系统删除它们。

答案 2 :(得分:1)

有两种方法可以解决这个问题:

  1. 通过两个系统运行各种小型测试用例并注意差异。由于测试用例很小,您应该能够找出代码与可执行文件的工作方式不同的原因。

  2. 反汇编可执行文件并删除所有“删除临时文件”说明。根据其工作原理,这可能是一项非常复杂的任务(例如,当没有中心位置时)。