мониторинг доступа к файлам старой игры DOS - PullRequest
2 голосов
/ 08 ноября 2008

У меня немного необычный вопрос. Я запускаю старую игру для DOS в DOSBox под Windows XP и пытаюсь определить, когда и где она обращается к своему файлу данных.

что я могу использовать, чтобы получить журнал всех запросов на чтение, сделанных в файл? Я хочу знать «когда», «из» и «размер» каждого прочитанного файла.

Я знаю свою базовую сборку 8086/8088, но не более того. так что, если нет доступного инструмента быстрого доступа, рекомендация инструмента / учебника по отладке, которая может помочь мне встать на правильный путь, также может быть полезной.

Игра "ниже корней", если кто-нибудь может пролить свет на внутреннюю часть этой игры, это будет очень полезно:)

Ответы [ 2 ]

6 голосов
/ 08 ноября 2008

Вы можете попробовать использовать FileMon для Windows и посмотреть, к чему досбокс получает доступ через файловую систему Windows.

2 голосов
/ 10 ноября 2008

Вы можете пропатчить исходный код DOSBOX :) Просто заставьте его написать несколько сообщений отладки, когда произойдет чтение. Если вы установите достаточно высокий уровень отладки, это может произойти в любом случае!

Большинство программ DOS используют прерывания DOS. Некоторые, однако, используют прерывания BIOS или хуже.

В любом случае, если это поможет, вот известные мне прерывания DOS для чтения файлов:

FCB-ориентированные функции:

  • INT 21 ч, AH = 14 ч (последовательное чтение)
  • INT 21 ч, AH = 21 ч (случайное чтение)
  • INT 21 ч, AH = 27 ч (случайное чтение блока, а-ля fread())

Функции, ориентированные на ручку:

  • INT 21h, AH = 3Fh (последовательное чтение)
  • INT 21ч, AH = 42ч (искать)
...