Debugging 查看进程创建的临时文件

Debugging 查看进程创建的临时文件,debugging,parsing,reverse-engineering,Debugging,Parsing,Reverse Engineering,我正在尝试对一个程序进行逆向工程,它可以进行一些基本的解析:文本输入,文本输出。我有一个可执行的“参考实现”,源代码必须是不同的版本,因为编译后的源代码输出!=可执行输出 该过程在多步骤解析过程中非常快速地创建和删除临时文件。如果我能看一看单独的临时文件,我可以得到一些很好的诊断数据,以缩小我的源代码与二进制文件的差异 是否有任何方法可以执行以下操作 冻结目录,以便文件创建工作正常,但文件删除将以静默方式失败 以“慢动作”运行程序,以便查看它创建的文件 记录程序所做的一切,包括写入文件的任何数

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

该过程在多步骤解析过程中非常快速地创建和删除临时文件。如果我能看一看单独的临时文件,我可以得到一些很好的诊断数据,以缩小我的源代码与二进制文件的差异

是否有任何方法可以执行以下操作

  • 冻结目录,以便文件创建工作正常,但文件删除将以静默方式失败
  • 以“慢动作”运行程序,以便查看它创建的文件
  • 记录程序所做的一切,包括写入文件的任何数据

您没有提到在什么操作系统上执行此操作,但假设您使用的是Windows


您可能能够使用诸如和之类的系统内部工具来更好地了解所访问的文件。据我所知,文件夹上没有“只写”选项。要“减慢”文件的速度,您只需要使用速度较慢的计算机。对于日志记录,SysInternals工具将提供相当多的帮助。一旦创建了一个或多个文件名,您可以尝试通过从另一个进程打开流中的文件来防止删除这些文件。这将阻止系统删除它们。

您没有提到在什么操作系统上执行此操作,但假设您使用的是Windows


您可能能够使用诸如和之类的系统内部工具来更好地了解所访问的文件。据我所知,文件夹上没有“只写”选项。要“减慢”文件的速度,您只需要使用速度较慢的计算机。对于日志记录,SysInternals工具将提供相当多的帮助。一旦创建了一个或多个文件名,您可以尝试通过从另一个进程打开流中的文件来防止删除这些文件。这将阻止系统删除它们。

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

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

  • 反汇编可执行文件并删除所有“删除临时文件”指令。这可能是一项非常复杂的任务,具体取决于它的工作方式(比如说,在没有中心位置的情况下)


  • 有两种方法可以解决此问题:

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

  • 反汇编可执行文件并删除所有“删除临时文件”指令。这可能是一项非常复杂的任务,具体取决于它的工作方式(比如说,在没有中心位置的情况下)


  • 运行像这样的工具应该可以让您有机会恢复它创建的临时文件,然后删除。将此功能与来自Sysinternals的功能结合起来,以获得正确的文件名。

    运行类似的工具应该可以让您有机会恢复正在创建的临时文件,然后删除这些文件。将此功能与来自Sysinternals的功能结合起来,以获得正确的文件名。

    在文件名消失之前,它以多快的速度创建它们?它们是二进制还是文本?你知道他们是否每次都有相同的名字吗?在他们离开之前,它能以多快的速度创造出他们?它们是二进制还是文本?你知道他们每次都叫同一个名字吗?都是好主意,但这一次对我帮助最大。谢谢所有的好主意,但这一个对我帮助最大。谢谢