Co to jest format pliku COM?
Plik .com to prosty binarny plik wykonywalny - jeden z najstarszych formatów programów w informatyce osobistej, wywodzący się z systemu operacyjnego CP/M firmy Digital Research, a następnie przeniesiony do MS-DOS. W przeciwieństwie do formatu .exe, który obsługuje wiele segmentów pamięci i tablice relokacji, program .com jest surowym, płaskim plikiem binarnym bez nagłówka: każdy bajt jest ładowany bezpośrednio do pamięci pod offsetem 0x0100 w ramach pojedynczego 64-kilobajtowego segmentu trybu rzeczywistego i natychmiast wykonywany. To ograniczenie architektoniczne oznacza, że plik .com nigdy nie może przekroczyć rozmiaru około 64 KB.
Nawet po uzupełnieniu go przez bardziej ogólny format .exe, format .com pozostał praktyczny i powszechnie używany w całej erze MS-DOS dla małych narzędzi, programów wiersza poleceń i programów rezydentnych (TSR). W 32-bitowych systemach Windows podsystem NTVDM uruchamiał pliki .com w sposób przezroczysty; NTVDM został usunięty z 64-bitowych systemów Windows, więc natywne uruchamianie na nowoczesnym systemie Windows wymaga emulatora, takiego jak DOSBox.
Rozszerzenie .com nie ma absolutnie żadnego związku z domeną internetową najwyższego poziomu .com. Ta zbieżność nazw była historycznie wykorzystywana przez twórców złośliwego oprogramowania, którzy maskowali wykonywalne pliki .com jako linki lub tekst, czyniąc ten format dobrze udokumentowanym wektorem inżynierii społecznej.
Bezpieczeństwo
RYZYKO: HIGHPliki COM to kod wykonywalny - historycznie główny nośnik złośliwego oprogramowania DOS (wirusy sektora rozruchowego często upuszczały infekatory .com). Na nowoczesnym 64-bitowym Windows nie mogą one działać natywnie, co stanowi praktyczną barierę bezpieczeństwa, ale w systemach 32-bitowych lub wewnątrz emulatorów DOS wykonują się bez ograniczeń. Nigdy nie uruchamiaj pliku COM otrzymanego nieoczekiwanie; przeskanuj go programem antywirusowym przed uruchomieniem w dowolnym emulatorze. Szczególne ryzyko: użytkownicy sieci mylą .com (domenę) z .com (plikiem wykonywalnym) i nieświadomie pobierają pliki wykonywalne, myśląc, że są to strony internetowe.
Szczegóły formatu
w pigułce- Windows Component Object Model registration stub - Rzadkie; niektóre bardzo stare narzędzia do autorejestracji serwerów Windows COM używały rozszerzenia .com.
- Skrypt poleceń sieciowych (Cisco IOS itp.) - Niektóre urządzenia wbudowane/sieciowe używają .com dla oprogramowania układowego lub skryptów poleceń - niepowiązane z DOS.
Programy otwierające pliki COM
Szczegóły techniczne
specyfikacja| Kodowanie | Surowy binarny kod maszynowy (tryb rzeczywisty x86) |
| Kolejność bajtów | Little-endian (x86) |
| Nagłówek pliku | Brak - płaski plik binarny bez nagłówka, bez tablicy relokacji, bez deskryptorów segmentów |
| Sygnatura pliku | Brak - identyfikowany wyłącznie po rozszerzeniu; pierwsze bajty to zazwyczaj kod operacji JMP (0xEB lub 0xE9), ale nie jest to obowiązkowe |
| Adres ładowania | Ładowany pod segment:0x0100; Program Segment Prefix (PSP) zajmuje bajty 0x0000-0x00FF segmentu |
| Model pamięci | CS = DS = ES = SS wszystkie wskazują na ten sam 64-kilobajtowy segment trybu rzeczywistego - brak separacji segmentów |
| Maksymalny rozmiar pliku | ~65 280 bajtów (jeden segment 64 KB minus 256-bajtowy PSP i minimalna alokacja stosu) |
| Typ MIME | application/x-msdos-program |
| Obsługa 64-bitowego Windows | Brak natywnej obsługi - NTVDM (podsystem 16-bitowy) usunięty z 64-bitowego Windows; użyj DOSBox lub DOSBox-X |
| Dziedzictwo CP/M | Format powstał w systemie Digital Research CP/M (1974) i został przyjęty bez zmian w MS-DOS 1.0 (1981) |
| Zastąpiony przez | .exe dla programów przekraczających 64 KB; .cmd / .bat dla skryptów konsoli Windows |
| Uwaga dotycząca bezpieczeństwa | Historycznie główny wektor złośliwego oprogramowania - trywialnie wykonywalny i łatwy do modyfikacji bez naruszania struktury; często maskowany jako nazwy plików w stylu domen |
| Systemy operacyjne | MS-DOS, PC DOS, FreeDOS, Windows 32-bit (przez NTVDM), CP/M; DOSBox/DOSBox-X do nowoczesnych zastosowań |
| Wydano | 1974 (CP/M); MS-DOS 1.0, 1981 |
| Najnowsza wersja | No versioning - raw binary format unchanged |
Konwersje COM
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki COM.