EXE luôn có thể được thay thế bằng COM?


53

Xem trước

Phần mềm chống vi-rút của chúng tôi không cho phép tôi sao chép tệp EXE vào thư mục khởi động Windows 7 (ví dụ calc.exe) vì đó là tệp EXE

Vì vậy, tôi đã đổi tên nó thành một tệp COM và sau đó sao chép nó và cho phép nó (rất chuyên nghiệp).

Và tất nhiên - calc.comkhông hoạt động.

Điều đó dẫn tôi đến hỏi (chỉ vì tò mò):

Câu hỏi

Khi nào một chương trình EXE sẽ không chạy khi được đổi tên thành COM? Hầu như mọi tệp exe mà tôi đã kiểm tra đều hoạt động.

Tôi muốn biết nội bộ tại sao và tại sao không.


42
Không sao chép tệp vào thư mục Khởi động - thay vào đó hãy tạo lối tắt.
gronostaj

4
Vâng, điều này là có thể, nhưng như tôi đã nói, những người bên trong quan tâm, tôi. Không phải AV ngu ngốc. :-)
Royi Namir

11
Bạn cũng có thể đổi tên nó thành .scr (trình bảo vệ màn hình) và nó sẽ hoạt động.
pjc50

2
Đó không phải là một AV ngu ngốc (ngoài việc không hiểu rõ rằng một tệp có phần mở rộng com vẫn có thể được hiểu là tệp PE). Bạn không nên đặt các tệp thực thi ở những nơi dễ viết - lý tưởng nhất là bạn chỉ muốn quản trị viên (có mã thông báo quản trị viên) được phép viết trong cùng thư mục nơi bạn có các tệp thực thi. Sử dụng phím tắt :)
Luaan

1
@Luaan Tôi không thấy cách loại trừ EXE và cho phép các phím tắt trong Startup bằng cách nào đó an toàn hơn là cho phép cả EXE và phím tắt. Có vẻ so sánh với tôi.
jrw32982 hỗ trợ Monica

Câu trả lời:


10

Nó phải làm với định dạng bên trong của tập tin. Ban đầu các tệp .com là các hình ảnh bộ nhớ đơn giản và các tệp .exe có rất nhiều tiêu đề được liên kết với chúng. Kết quả là bạn không thể đổi tên chúng. Khi thời gian trôi qua và họ phải làm cho mọi thứ tương thích ngược, Microsoft đã thay đổi nó để HĐH nhìn vào chính tệp để xác định loại tệp đó là gì thay vì phần mở rộng. Kết quả là khi bạn chạy tệp đã đổi tên, Windows sẽ bỏ qua phần mở rộng hoàn toàn. Xem các liên kết dưới đây để giải thích rộng hơn.

Câu hỏi tương tự

Giải thích blog của Microsoft


1
Trời ạ. Ai khác nghĩ về điều đó? ... UNIX / Linux.
Joe

1
@Joe Bất kỳ hệ thống nào đã phát triển hữu cơ, yeah. Các tệp COM tồn tại rất lâu trước khi thực thi di động và hoàn toàn ổn trong một thời gian khá dài.
Luaan

@Luaan Tất nhiên là bạn đúng. Tôi đã tạo / sử dụng các tệp com trên CP / M (trong đó 64k ram không bao giờ là vấn đề đối với tôi). Thật thú vị khi một hệ điều hành sao chép thứ gì đó từ một hệ điều hành khác đã bắt đầu đúng - đặc biệt là khi họ chê bai nó quá lâu.
Joe

@Joe Là một người hâm mộ Linux, tôi thích cách nó sử dụng các thuộc tính thay vì các phần mở rộng.
Math Man

Thực tế ngẫu nhiên, nhưng các tệp .COM thực tế (MS-DOS và CP / M gốc) bị giới hạn ở một kích thước tệp (64kb) do hình ảnh chỉ được sao chép trực tiếp vào một phân đoạn và được thực thi. Bạn càng biết nhiều, v.v ...
0x90h
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.