Vad är filformatet COM?
En .com-fil är en enkel exekverbar binärfil - ett av de äldsta programformaten inom persondatorer, med ursprung i Digital Researchs operativsystem CP/M innan det fördes vidare till MS-DOS. Till skillnad från .exe-formatet, som stöder flera minnessegment och relokeringstabeller, är ett .com-program en rå, platt binärfil utan filhuvud: varje byte laddas direkt in i minnet vid offset 0x0100 inom ett enda 64 KB real-mode-segment och exekveras omedelbart. Denna arkitektoniska begränsning innebär att en .com-fil aldrig kan överstiga ungefär 64 KB i storlek.
Även om det kompletterades av det mer generella .exe-formatet, förblev .com praktiskt och flitigt använt under hela MS-DOS-eran för små verktyg, kommandoradsprogram och TSR-program. Under 32-bitars Windows körde NTVDM-undersystemet .com-filer transparent; NTVDM togs bort från 64-bitars Windows, så nativ exekvering på moderna Windows kräver en emulator som DOSBox.
Filändelsen .com har absolut ingen koppling till toppdomänen .com på internet. Denna namnlikhet har historiskt sett utnyttjats av skadlig kod som maskerar exekverbara .com-filer som länkar eller text, vilket gör formatet till en väldokumenterad vektor för social manipulation.
Säkerhet & trygghet
RISK: HIGHCOM-filer är exekverbar kod - historiskt sett den främsta bäraren av DOS-malware (bootsektorvirus släppte ofta .com-infektorer). På moderna 64-bitars Windows kan de inte köras nativt, vilket är en praktisk säkerhetsbarriär, men på 32-bitars system eller inuti DOS-emulatorer exekveras de utan begränsningar. Kör aldrig en COM-fil som tagits emot oväntat; skanna med antivirus innan du startar den i en emulator. Särskild risk: webbanvändare förväxlar .com (domän) med .com (exekverbar fil) och laddar ovetande ner exekverbara filer i tron att de är webbsidor.
Formatdetaljer
i ett nötskal- Windows Component Object Model registreringsstub - Sällsynt; vissa mycket gamla Windows COM-serververktyg för självregistrering använde filändelsen .com.
- Nätverkskommandoskript (Cisco IOS etc.) - Vissa inbäddade enheter eller nätverksenheter använder .com för firmware eller kommandoskript - orelaterat till DOS.
Program som öppnar COM-filer
Tekniska detaljer
djup specifikation| Kodning | Rå binär maskinkod (x86 real-mode) |
| Byteordning | Little-endian (x86) |
| Filhuvud | Inget - platt binär utan huvud, ingen relokeringstabell, inga segmentbeskrivningar |
| Filsignatur | Ingen - identifieras endast via filändelse; första byten är vanligtvis en JMP-opkod (0xEB eller 0xE9) men det är inte obligatoriskt |
| Laddningsadress | Laddas vid segment:0x0100; Program Segment Prefix (PSP) upptar byte 0x0000-0x00FF i segmentet |
| Minnesmodell | CS = DS = ES = SS pekar alla på samma 64 KB real-mode-segment - ingen segmentseparering |
| Maximal filstorlek | ~65 280 byte (ett 64 KB-segment minus 256-byte PSP och minsta stackallokering) |
| MIME-typ | application/x-msdos-program |
| Stöd för 64-bitars Windows | Stöds inte nativt - NTVDM (16-bitars undersystem) borttaget från 64-bitars Windows; använd DOSBox eller DOSBox-X |
| CP/M-arv | Formatet har sitt ursprung i Digital Research CP/M (1974) och antogs oförändrat för MS-DOS 1.0 (1981) |
| Ersatt av | .exe för program som överstiger 64 KB; .cmd / .bat för Windows-konsolskript |
| Säkerhetsnotering | Historiskt sett en stor vektor för skadlig kod - trivialt exekverbar och lätt att modifiera utan att bryta strukturen; maskeras ofta som domänliknande filnamn |
| Operativsystem | MS-DOS, PC DOS, FreeDOS, Windows 32-bit (via NTVDM), CP/M; DOSBox/DOSBox-X för modern användning |
| Släppt | 1974 (CP/M); MS-DOS 1.0, 1981 |
| Senaste version | No versioning - raw binary format unchanged |
COM-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om COM-filer.