Che cos'è il formato di file COM?
Un file .com è un semplice binario eseguibile, uno dei formati di programma più antichi nell'informatica personale, originatosi nel sistema operativo CP/M di Digital Research prima di essere portato in MS-DOS. A differenza del formato .exe, che supporta più segmenti di memoria e tabelle di rilocazione, un programma .com è un binario piatto grezzo senza intestazione del file: ogni byte viene caricato direttamente in memoria all'offset 0x0100 all'interno di un singolo segmento in modalità reale da 64 KB ed eseguito immediatamente. Questo vincolo architettonico significa che un file .com non può mai superare circa 64 KB di dimensione.
Anche se affiancato dal formato più generalizzato .exe, il formato .com è rimasto pratico e ampiamente utilizzato durante l'era MS-DOS per piccole utilità, strumenti a riga di comando e programmi TSR. Sotto Windows a 32 bit, il sottosistema NTVDM eseguiva i file .com in modo trasparente; NTVDM è stato rimosso da Windows a 64 bit, quindi l'esecuzione nativa sui moderni Windows richiede un emulatore come DOSBox.
L'estensione .com non ha alcun collegamento con il nome di dominio Internet di primo livello .com. Questa corrispondenza nella denominazione è stata storicamente sfruttata dagli autori di malware che mascherano i file eseguibili .com come link o testo, rendendo il formato un vettore di ingegneria sociale ben documentato.
Sicurezza e incolumità
RISCHIO: HIGHI file COM sono codice eseguibile - storicamente il principale portatore di malware DOS (i virus del settore di avvio spesso rilasciavano infettori .com). Sui moderni Windows a 64 bit non possono essere eseguiti nativamente, il che rappresenta una barriera di sicurezza pratica, ma sui sistemi a 32 bit o all'interno di emulatori DOS vengono eseguiti senza restrizioni. Non eseguire mai un file COM ricevuto inaspettatamente; scansiona con un antivirus prima di avviarlo in qualsiasi emulatore. Rischio particolare: gli utenti web confondono .com (dominio) con .com (eseguibile) e scaricano inconsapevolmente file eseguibili pensando che siano pagine web.
Dettagli del formato
in sintesi- Stub di registrazione Windows Component Object Model - Raro; alcune vecchie utilità di autoregistrazione del server COM di Windows utilizzavano l'estensione .com.
- Script di comando di rete (Cisco IOS ecc.) - Alcuni dispositivi embedded/di rete utilizzano .com per firmware o script di comando - non correlato a DOS.
Programmi che aprono file COM
Dettagli tecnici
specifiche approfondite| Codifica | Codice macchina binario grezzo (modalità reale x86) |
| Ordine dei byte | Little-endian (x86) |
| Intestazione del file | Nessuna - binario piatto senza intestazione, senza tabella di rilocazione, senza descrittori di segmento |
| Firma del file | Nessuna - identificato solo dall'estensione; i primi byte sono tipicamente un opcode JMP (0xEB o 0xE9) ma non obbligatorio |
| Indirizzo di caricamento | Caricato a segmento:0x0100; il Program Segment Prefix (PSP) occupa i byte 0x0000-0x00FF del segmento |
| Modello di memoria | CS = DS = ES = SS puntano tutti allo stesso segmento in modalità reale da 64 KB - nessuna separazione di segmento |
| Dimensione massima del file | ~65.280 byte (un segmento da 64 KB meno il PSP da 256 byte e l'allocazione minima dello stack) |
| Tipo MIME | application/x-msdos-program |
| Supporto Windows a 64 bit | Non supportato nativamente - NTVDM (sottosistema a 16 bit) rimosso da Windows a 64 bit; usa DOSBox o DOSBox-X |
| Eredità CP/M | Il formato ha avuto origine con CP/M di Digital Research (1974) ed è stato adottato invariato per MS-DOS 1.0 (1981) |
| Sostituito da | .exe per programmi che superano i 64 KB; .cmd / .bat per script console Windows |
| Nota sulla sicurezza | Storicamente un importante vettore di malware - banalmente eseguibile e facilmente modificabile senza rompere la struttura; comunemente camuffato come nomi di file in stile dominio |
| Sistemi operativi | MS-DOS, PC DOS, FreeDOS, Windows a 32 bit (tramite NTVDM), CP/M; DOSBox/DOSBox-X per l'uso moderno |
| Rilasciato | 1974 (CP/M); MS-DOS 1.0, 1981 |
| Ultima versione | No versioning - raw binary format unchanged |
Conversioni COM
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file COM.