Kann man jede .exe in eine .com umbennen?



  • Hallo kann mir einer sagen ob das mit Konsolenanwendungen geht?



  • Klar kann man das, wenn man Rechte dazu hat.



  • Lassen die sich dann wirklich ausführen? Wusste ich gar nicht. Was ist mit der 64KB-Beschränkung bei COM-Dateien? Und nun die wichtigste Frage: warum, herrje, warum nur?! 😉



  • _matze schrieb:

    Lassen die sich dann wirklich ausführen? Wusste ich gar nicht. Was ist mit der 64KB-Beschränkung bei COM-Dateien?

    Das dürfte an der MZ-Kennung unterschieden werden. Sie wird natürlich weiter als EXE behandelt, alles andere ergibt keinen Sinn.

    Und nun die wichtigste Frage: warum, herrje, warum nur?! 😉

    Wegen der Suchpfadauflösung. COM hat gegenüber EXE (und BAT) Priorität.



  • _matze schrieb:

    Lassen die sich dann wirklich ausführen? Wusste ich gar nicht. Was ist mit der 64KB-Beschränkung bei COM-Dateien? Und nun die wichtigste Frage: warum, herrje, warum nur?! 😉

    Unter Win gehts, weil Win alle ausführbaren Dateien in den selben Ausführer steckt, und der untersucht erst, wie gestartet wird. Hab gerade kein Win an, aber damit konnte man wirklich Spaß haben. Wenn ich mich recht erinnere, sogar Sachen, wie eine foo.com und foo.exe im selben Verzeichnis und selbst, wenn man foo.exe aufruft, startet die foo.com.



  • Kann man. Man könnte sie auch nach .hallihalo nennen, oder name.irgendwie oder name.hmmmm oder .wieauchimmer

    Zum Umwandeln von exe nach com gab es früher für Dos das tool Exe2bin
    http://technet.microsoft.com/en-us/library/bb490635.aspx

    Man kann die Umwandlung auch von Hand machen, dazu braucht es aber etwas mehr Hintergrundwissen und einen Hexeditor.

    Man kann mit etwas mehr Hintergrundknowhow auch com-Programme größer als 64k erstellen.



  • nachtfeuer schrieb:

    Zum Umwandeln von exe nach com gab es früher für Dos das tool Exe2bin
    http://technet.microsoft.com/en-us/library/bb490635.aspx

    Das konnte wie du sicher weißt aber nicht jede beliebige EXE in eine COM umwandeln, sondern nur die, die praktisch schon COM-Programme waren, weil sie alle Segmente in einem hatten (Speichermodell Tiny). Und es war auch nur nötig, falls der Linker nicht von sich aus schon COM-Dateien erzeugen konnte.



  • Bashar schrieb:

    nachtfeuer schrieb:

    Zum Umwandeln von exe nach com gab es früher für Dos das tool Exe2bin
    http://technet.microsoft.com/en-us/library/bb490635.aspx

    Das konnte wie du sicher weißt aber nicht jede beliebige EXE in eine COM umwandeln, sondern nur die, die praktisch schon COM-Programme waren, weil sie alle Segmente in einem hatten (Speichermodell Tiny). Und es war auch nur nötig, falls der Linker nicht von sich aus schon COM-Dateien erzeugen konnte.

    Es steht ja in dem genannten Link beschrieben, unter welchen Bedingungen das Programm arbeitet. Exe2bin beschwerte sich darüberhinaus bei etlichen Dos-Versionen über unpassendes Dos. Erst mit Vista gehts wieder wie wie vorhersehbar. Fasm kann ohne Linker eine .com Datei und andere Formate erzeugen. Org 100h reicht als Direktive für .com. Das ist insofern nötig, weil .com Programme von/für DOS einen bestimmten Header bekommen, der 256 Byte groß ist ( http://de.wikipedia.org/wiki/Program_Segment_Prefix ).



  • [quote="volkard"]

    _matze schrieb:

    [...] Wenn ich mich recht erinnere, sogar Sachen, wie eine foo.com und foo.exe im selben Verzeichnis und selbst, wenn man foo.exe aufruft, startet die foo.com.

    Fast. foo.exe führt(e) schon die .exe aus, aber ein lapidares foo die .com wenn beide existieren.


Anmelden zum Antworten