Wat is het 386-bestandsformaat?
.386-bestanden zijn Virtual Device Drivers (VxDs) voor de Windows 386 Enhanced Mode, geïntroduceerd met Windows/386 2.x in 1988. Een VxD is een binair component in kernel-modus dat een hardwareapparaat of OS-service virtualiseert - zoals een timer, toetsenbord, beeldschermadapter of diskcontroller - zodat meerdere DOS-applicaties die tegelijkertijd draaien elk kunnen geloven dat ze exclusieve toegang hebben tot de hardware.
Intern is een .386-bestand een MZ DOS executable stub gevolgd door een Linear Executable (LE) header. De LE-header bevat een VxD-descriptorblok dat de apparaat-ID, versie en toegangspunten voor initialisatie, I/O-poortvirtualisatie en interrupt-afhandeling identificeert. Windows/386 2.x gebruikte een eerder eigen W386-headerformaat voordat de LE-standaard werd aangenomen.
.386 VxDs draaien volledig in Ring 0 (kernel-modus) zonder geheugenisolatie. Dit maakte ze krachtig maar onstabiel: een defecte driver kon het hele besturingssysteem laten crashen. Windows NT gebruikte vanaf het begin het WDM (Windows Driver Model) met degelijke kernel-isolatie; Windows 98 SE begon de overgang en Windows Me was de laatste consumentenversie die VxDs ondersteunde. Windows XP en later kunnen .386-bestanden helemaal niet laden - het VxD-subsysteem is verwijderd.
Dezelfde rol als virtuele apparaatdriver wordt ook vervuld door .vxd-bestanden (functioneel identiek, andere extensie gebruikt voor dynamische VxDs onder Windows 95/98). Bekende voorbeelden zijn VSHARE.386, VFAT.386 en VTDAPI.386. Deze bestanden worden automatisch geladen door de Windows-kernel bij het opstarten of op aanvraag; ze kunnen en mogen niet handmatig worden geopend.
Beveiliging & veiligheid
RISICO: MEDIUMLegitieme .386-bestanden zijn Windows-systeemdrivers, onschadelijk op modern Windows (ze laden niet). Malware gebruikte echter historisch de .386-extensie op Windows 9x/Me om kernel-mode payloads te verbergen - op die besturingssystemen konden Ring 0 VxDs zichzelf verbergen voor antivirus. Op Windows XP en later kunnen .386-bestanden niet als VxDs laden en vormen ze geen uitvoeringsrisico. Als antivirus een .386-bestand markeert op een modern systeem, is dit waarschijnlijk een historische detectie-handtekening of een bestand dat vermomd is met de .386-extensie.
Formaatdetails
in een notendop- Ventura Publisher lettertypebestand - Sommige versies van Xerox/Corel Ventura Publisher gebruikten .386 voor downloadbare 386-geoptimaliseerde lettertypegegevens - zeldzaam, van voor 1995.
Programma's die 386-bestanden openen
Technische details
diepe specificaties| Codering | Binair uitvoerbaar bestand (MZ DOS stub + Linear Executable LE body) |
| Byte-volgorde | Little-endian |
| Bestandsheader | MZ-header (4D 5A) op offset 0 (DOS stub); LE-header (4C 45) op de offset aangewezen door dword op 0x3C |
| Vroegste formaatvariant | Windows/386 2.x (1988): eigen W386-header, voorafgaand aan de LE-standaard |
| Executie-ring | Ring 0 (kernel-modus) - VxDs draaien met volledige hardwaretoegang en zonder geheugenisolatie |
| Typische bestandsgrootte | 2 KB - 200 KB |
| VxD-descriptorblok | Identificeert apparaat-ID, versie en toegangspunten: initialisatie, I/O-poortafhandeling, interrupt-virtualisatie |
| OS-compatibiliteit | Windows 2.x (Windows/386) tot en met Windows Me; niet laadbaar op Windows XP of later |
| Opvolgende technologie | WDM (Windows Driver Model) geïntroduceerd in Windows 98 SE / Windows 2000; drivers gebruiken de .sys-extensie |
| Dynamisch laden | Ondersteund vanaf Windows for Workgroups 3.11; eerdere versies gebruikten alleen statische VxDs |
| Opmerkelijke voorbeelden | VSHARE.386, VFAT.386, VTDAPI.386, EMM386.386, WINA20.386 |
| Uitgebracht | 1988 (Windows/386 2.x) |
| Laatste versie | Used through Windows Me (2000); superseded by WDM in Windows 98 SE / 2000 |
| Specificatie | devblogs.microsoft.com |
386 conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over 386-bestanden.