2008-11-08 9 views
2

J'ai une question inhabituelle. Je cours un vieux jeu DOS dans dosbox sous Windows XP et j'essaie de déterminer quand et où il accède à son fichier de données.l'accès au fichier de surveillance d'un ancien jeu

Que puis-je utiliser qui me donnera un journal de toutes les demandes de lecture faites à un fichier? Je veux savoir le "quand", "de" et "taille" de chaque fichier lu.

Je connais mon assemblage de base 8086/8088 mais rien de plus. Donc, s'il n'y a pas d'outil de raccourci disponible, une recommandation d'un outil de débogage/tutoriel qui peut m'aider à me mettre sur la bonne voie peut être géniale aussi.

si quelqu'un peut faire la lumière sur les éléments internes de ce jeu « ci-dessous les racines » du jeu, il sera d'une grande aide :)

Répondre

6

Vous pouvez essayer d'utiliser FileMon for Windows et voir ce que DOSBox accède via le fichier Windows système.

2

Vous pouvez patcher le code source DOSBOX :) Il suffit de l'écrire pour écrire des messages de débogage lorsque les lectures se produisent. Si vous définissez le niveau de débogage assez haut, cela peut arriver de toute façon!

La plupart des programmes DOS utilisent des interruptions DOS. Certains utilisent cependant des interruptions du BIOS ou pire.

Quoi qu'il en soit, dans le cas où il aide, voici le DOS fichier de lecture interrompt je connais:

fonctions orientées FCB:

  • 21H, AH = 14h (lecture séquentielle)
  • 21H, AH = 21h (lecture aléatoire)
  • INT 21h, AH = 27h (lecture de bloc aléatoire, à la fread())

fonctions orientées poignée:

  • 21H, AH = 3Fh (en lecture séquentielle)
  • INT 21h, AH = 42h (recherche)