Kann EXE immer durch COM ersetzt werden?

53

Vorschau

Unsere Antivirensoftware hat es mir nicht ermöglicht, eine EXE-Datei in meinen Windows 7-Startordner (z. B. calc.exe) zu kopieren, da es sich um eine EXE-Datei handelt

Also habe ich es in eine COM-Datei umbenannt und dann kopiert und es erlaubt (sehr professionell).

Und natürlich - calc.comfunktioniert.

Was mich dazu veranlasste (nur aus Neugier) zu fragen:

Frage

Wann wird ein EXE-Programm nicht ausgeführt, wenn es in COM umbenannt wird? Fast jede Exe-Datei, die ich überprüft habe, hat funktioniert.

Ich würde gerne wissen, warum und warum nicht.

Royi Namir
quelle
42
Kopieren Sie keine Dateien in den Autostart-Ordner - erstellen Sie stattdessen Verknüpfungen.
Gronostaj
4
Ja, das ist möglich, aber wie gesagt, die Interna interessieren mich. Nicht der blöde AV. :-)
Royi Namir
11
Sie können es auch in .scr (Bildschirmschoner) umbenennen und es wird funktionieren.
pjc50
2
Es ist kein dummer AV (abgesehen davon, dass eine Datei mit einer COM-Erweiterung immer noch als PE-Datei interpretiert werden kann). Sie sollten ausführbare Dateien nicht an Stellen ablegen, an denen sie leicht geschrieben werden können. Idealerweise soll der Administrator (mit einem Administrator-Token) nur in dasselbe Verzeichnis schreiben dürfen, in dem Sie ausführbare Dateien haben. Verwenden Sie Abkürzungen :)
Luaan
1
@Luaan Ich sehe nicht, wie das Ausschließen von EXE-Dateien und das Zulassen von Verknüpfungen in Startup irgendwie sicherer ist als das Zulassen von EXE-Dateien und Verknüpfungen. Scheint mir vergleichbar.
jrw32982 unterstützt Monica

Antworten:

10

Es hat mit dem internen Format der Datei zu tun. Ursprünglich waren .com-Dateien einfache Speicherabbilder, und mit .exe-Dateien waren viele Header verknüpft. Infolgedessen konnten Sie sie nicht umbenennen. Mit der Zeit änderte Microsoft die Einstellung, sodass das Betriebssystem die Datei selbst ansieht, um festzustellen, um welchen Dateityp es sich handelt, und nicht um die Dateierweiterung. Wenn Sie die umbenannte Datei ausführen, ignoriert Windows die Erweiterung daher vollständig. Eine ausführlichere Erklärung finden Sie unter den folgenden Links.

Ähnliche Frage

Microsoft Blog Erklärung

Math Man
quelle
1
Gee. Wer hat noch daran gedacht? ... UNIX / Linux.
Joe
1
@ Joe Jedes System, das organisch gewachsen ist, ja. COM-Dateien existierten lange vor tragbaren ausführbaren Dateien und waren lange Zeit vollkommen in Ordnung.
Luaan
@Luaan Natürlich hast du recht. Ich habe auf CP / M COM-Dateien erstellt / verwendet (64 KB RAM waren für mich nie ein Problem). Es ist nur interessant, wenn ein Betriebssystem etwas von einem anderen kopiert, mit dem es richtig angefangen hat - insbesondere, wenn es so lange so gründlich herabgesetzt wurde.
Joe
@Joe Da ich selbst ein Linux-Fan bin, mag ich die Art und Weise, wie Eigenschaften anstelle von Erweiterungen verwendet werden.
Math Man
Zufällige faktische, aber tatsächliche COM-Dateien (MS-DOS und Original-CP / M) waren auf eine Segmentgröße (64 KB) beschränkt, da das Image nur direkt in ein Segment kopiert und ausgeführt wurde. Je mehr Sie wissen, etc ...
0x90h