Question Comment puis-je exécuter un exécutable (16 bits) .COM renommé en .COS?


J'essaie d'exécuter quelques programmes DOS hérités 16 bits à partir d'une invite standard de Windows XP. Le problème est que les extensions de fichiers ont été renommées de .COM à .COS et elles sont stockées sur un support en lecture seule et je ne peux pas les copier (environnement spécial).

Des astuces pour invoquer de tels fichiers malgré une extension bizarre? S'ils avaient été des EXE 32 bits, cela n'aurait pas été un problème de les exécuter même sans leurs extensions appropriées, mais avec ces fichiers COM, je suis incapable de trouver un moyen de les exécuter.


4
2018-03-02 13:56


origine


Vous devriez ajouter plus de détails sur l'environnement, en particulier sur votre "environnement spécial". - Robert
Trouvez un moyen de graver une nouvelle copie du support. Ils ont été créés d'une certaine manière. - Ramhound


Réponses:


D'accord. Je l'ai compris. Je pense, de toute façon. Cela profite du fait que les fichiers DOS .COM ne sont que des images binaires avec un en-tête d'octets 0x100, les deux premiers octets étant un JMP 0x0100 (j'espère que j'ai raison à ce sujet) et l'ancien utilitaire DOS debug qui existe sous XP.

  • invite de commande ouverte
  • cd au répertoire contenant les fichiers .COS
  • debug [entrer]
  • Vous êtes maintenant au debug.exe invite (juste un tiret)
  • Type n{name of your .COS file, including extension} - se substituer de manière appropriée. Par exemple, pour le type FILE.COS nfile.cos, alors [entrez]
  • Type l (pour le chargement) puis [entrer]
  • Type g (pour aller) puis [entrer]

Laissez-moi savoir comment ça se passe. J'ai chargé C:\windows\system32\tree.com mais évidemment c'est vraiment un .EXE (dit que cela ne peut pas être exécuté en mode DOS). Bonne chance.

(BTW I juste lisez les articles sur tree.com là-haut, ouops!)


4
2018-05-02 22:51



Ouais, ça pourrait faire l'affaire. Bien sûr, c’est une vraie douleur et certaines limites sérieuses comme ne pas être exécutable à partir d’un fichier de Courir dialogue. Ne pas pouvoir les copier est frustrant, n'est-ce pas? :-( - Synetech


Regardez ce que je peux faire :-) (faites-le dans une boîte XP DOS):

C:\>md test

C:\>cd test

C:\test>xcopy c:\windows\system32\tree.com
C:\windows\system32\tree.com
1 File(s) copied

C:\test>md t1

C:\test>md t2

C:\test>tree
Volume in drive C is OSDisk
Volume Serial Number is 0006EFC4 9654:5A1E
C:.
├───t1
└───t2

C:\test>ren tree.com tree.cos

C:\test>tree.cos
Volume in drive C is OSDisk
Volume Serial Number is 0006EFC4 9654:5A1E
C:.
├───t1
└───t2

C:\test>ren tree.cos newname.cos

C:\test>newname.cos
Volume in drive C is OSDisk
Volume Serial Number is 0006EFC4 9654:5A1E
C:.
├───t1
└───t2

C:\test>

C'est à dire. vous pouvez évidemment exécuter des fichiers cos si vous nommez explicitement l'extension à l'invite DOS.


4
2018-03-08 16:25



Nan; C'est Incorrect. La raison qui fonctionne est parce que tree.com n'est pas réellement un fichier .COM, c'est un fichier .EXE avec un .com extension pour la compatibilité ascendante (comme presque tous les fichiers .COM dans Windows pour un certain nombre de versions maintenant). Si c'était un vrai fichier .COM, il aurait été ouvert avec le programme par défaut "all-files", ou si aucun n'est défini, alors vous auriez été invité avec le Ouvrir avec boite de dialogue. - Synetech
Vrai. Cool. Uncool qu'un type simple tree.com révèle qu'il a une signature exe MZ. Doh. Alors, quelle serait la bonne réponse? "Pas du tout"? - TheBlastOne


Non, j'ai peur qu'il ne soit pas possible de faire ce que vous voulez dans les circonstances que vous avez décrites. Les fichiers exécutables sont traités spécialement (en raison de leur capacité à infecter un système), de sorte que Windows ne vous laissera pas exécuter un ancien fichier en tant qu'exécutable.

le PATHEXT La variable d'environnement indique à Windows quels programmes sont "exécutables" et peuvent être "exécutés", mais il existe des limites. Ouvrez une invite de commande et ajoutez .cos à pathext et essayez de lancer l'un des .cos des dossiers:

> set pathext=.cos;%pathext%
> foobar.cos

Vous verrez que soit le programme par défaut "tous les fichiers" s'exécute, ou si aucun n'est configuré, que le Ouvrir avec le dialogue est présenté. Pourquoi? Parce que Windows restreint ce qui peut être exécuté pour des raisons de sécurité. Vous devriez pouvoir vous inscrire .cos fichiers comme exécutables (comme .py, .pl, etc.), mais même dans ce cas, il peut ne pas être possible .py ou .pl le fichier est en fait juste un document qui est ouvert par un programme, pas un réel exécutable.

Une autre option pourrait être d'essayer de créer une association par laquelle vous indiquez au système que .cos les fichiers sont comfiles. Cependant, le test rapide que je viens de tenter n'a pas fonctionné et Windows s'est plaint qu'il ne s'agit pas d'un fichier exécutable et qu'il est renvoyé accès refusé.


1
2018-05-02 21:09