Wat is het COM-bestandsformaat?
Een .com-bestand is een eenvoudig uitvoerbaar binair bestand - een van de oudste programmaformaten in de persoonlijke informatica, afkomstig uit het CP/M-besturingssysteem van Digital Research voordat het werd overgenomen in MS-DOS. In tegenstelling tot het .exe-formaat, dat meerdere geheugensegmenten en relocatietabellen ondersteunt, is een .com-programma een ruw plat binair bestand zonder bestandskop: elke byte wordt direct in het geheugen geladen op offset 0x0100 binnen een enkel 64 KB real-mode segment en onmiddellijk uitgevoerd. Deze architecturale beperking betekent dat een .com-bestand nooit groter kan zijn dan ongeveer 64 KB.
Zelfs toen het werd aangevuld door het meer algemene .exe-formaat, bleef .com praktisch en veelgebruikt gedurende het MS-DOS-tijdperk voor kleine hulpprogramma's, opdrachtregeltools en TSR-programma's. Onder 32-bit Windows voerde het NTVDM-subsysteem .com-bestanden transparant uit; NTVDM is verwijderd uit 64-bit Windows, dus voor systeemeigen uitvoering op modern Windows is een emulator zoals DOSBox vereist.
De extensie .com heeft simpelweg geen verbinding met de .com top-level internetdomeinnaam. Deze overeenkomst in naamgeving is historisch uitgebuit door malware-auteurs die uitvoerbare .com-bestanden vermommen als links of tekst, waardoor het formaat een goed gedocumenteerde social-engineering vector is.
Beveiliging & veiligheid
RISICO: HIGHCOM-bestanden zijn uitvoerbare code - historisch gezien de primaire drager van DOS-malware (bootsectorvirussen lieten vaak .com-infectoren achter). Op modern 64-bit Windows kunnen ze niet systeemeigen draaien, wat een praktische veiligheidsbarrière is, maar op 32-bit systemen of binnen DOS-emulators worden ze zonder beperkingen uitgevoerd. Voer nooit een onverwacht ontvangen COM-bestand uit; scan met antivirus voordat u het in een emulator start. Bijzonder risico: webgebruikers verwarren .com (domein) met .com (uitvoerbaar bestand) en downloaden onbewust uitvoerbare bestanden in de veronderstelling dat het webpagina's zijn.
Formaatdetails
in een notendop- Windows Component Object Model registration stub - Zeldzaam; sommige zeer oude Windows COM-server zelfregistratieprogramma's gebruikten de .com-extensie.
- Netwerk-opdrachtscript (Cisco IOS etc.) - Sommige embedded/netwerkapparaten gebruiken .com voor firmware of opdrachtscripts - ongerelateerd aan DOS.
Programma's die COM-bestanden openen
Technische details
diepe specificaties| Codering | Rauwe binaire machinecode (x86 real-mode) |
| Byte-volgorde | Little-endian (x86) |
| Bestandskop | Geen - plat binair bestand zonder header, geen relocatietabel, geen segmentdescriptors |
| Bestandssignatuur | Geen - alleen geïdentificeerd door extensie; eerste bytes zijn meestal een JMP-opcode (0xEB of 0xE9) maar niet verplicht |
| Laadadres | Geladen op segment:0x0100; Program Segment Prefix (PSP) beslaat bytes 0x0000-0x00FF van het segment |
| Geheugenmodel | CS = DS = ES = SS wijzen allemaal naar hetzelfde 64 KB real-mode segment - geen segment-scheiding |
| Maximale bestandsgrootte | ~65.280 bytes (één 64 KB segment minus 256-byte PSP en minimale stack-allocatie) |
| MIME-type | application/x-msdos-program |
| 64-bit Windows ondersteuning | Niet systeemeigen ondersteund - NTVDM (16-bit subsysteem) verwijderd uit 64-bit Windows; gebruik DOSBox of DOSBox-X |
| CP/M erfgoed | Formaat is ontstaan bij Digital Research CP/M (1974) en ongewijzigd overgenomen voor MS-DOS 1.0 (1981) |
| Vervangen door | .exe voor programma's groter dan 64 KB; .cmd / .bat voor Windows console-scripts |
| Beveiligingsopmerking | Historisch gezien een belangrijke malware-vector - triviaal uitvoerbaar en eenvoudig aan te passen zonder de structuur te breken; vaak vermomd als domein-achtige bestandsnamen |
| Besturingssystemen | MS-DOS, PC DOS, FreeDOS, Windows 32-bit (via NTVDM), CP/M; DOSBox/DOSBox-X voor modern gebruik |
| Uitgebracht | 1974 (CP/M); MS-DOS 1.0, 1981 |
| Laatste versie | No versioning - raw binary format unchanged |
COM conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over COM-bestanden.