2

我有一个不寻常的问题。我在 windows xp 下的 dosbox 中运行一个旧的 DOS 游戏,我试图确定它何时何地访问它的数据文件。

我可以使用什么来记录对文件的所有读取请求?我想知道读取的每个文件的“时间”、“来自”和“大小”。

我知道我的基本 8086/8088 程序集,但仅此而已。所以如果没有可用的快捷工具,推荐一个可以帮助我走上正轨的调试工具/教程也很棒。

游戏的“根源”,如果有人能对这个游戏的内部原理有所了解,那将是一个很大的帮助:)

4

2 回答 2

6

您可以尝试使用FileMon for Windows并查看通过 Windows 文件系统访问的 dosbox。

于 2008-11-08T16:34:03.540 回答
2

您可以修补 DOSBOX 源代码 :) 只需让它在读取发生时写入一些调试消息。如果您将调试级别设置得足够高,无论如何都可能发生!

大多数 DOS 程序使用 DOS 中断。然而,有些使用 BIOS 中断或更糟。

无论如何,如果它有帮助,这里是我知道的文件读取 DOS 中断:

面向FCB的功能:

  • INT 21h,AH=14h(顺序读取)
  • INT 21h,AH=21h(随机读取)
  • INT 21h, AH=27h (随机块读取, à la fread())

面向句柄的功能:

  • INT 21h,AH=3Fh(顺序读取)
  • INT 21h,AH=42h(寻道)
于 2008-11-10T06:23:32.023 回答