Hvad er OCX-filformatet?
.ocx-filer er knyttet til ActiveX-kontrolmodulet til Microsoft Windows-operativsystemet. Formatet opstod i 1994 som OLE Custom Controls og blev omdøbt til ActiveX Controls i 1996. Strukturelt er en .ocx-fil en kompileret Windows PE-binær fil - reelt en .dll, der starter med MZ magic header og eksponerer COM-kontrolgrænseflader, herunder den obligatoriske DllRegisterServer-eksport.
ActiveX er en softwarestruktur til styring af komponenter, der anvendes af applikationer udviklet i programmeringssprog som f.eks.:
- Visual Basic,
- C++,
- Delphi,
- PowerBuilder.
Objekter gemt i .ocx-filer giver mulighed for hurtig og effektiv dataudveksling mellem forskellige applikationer, der kører på Windows. De letter informationsoverførsel mellem elementer og giver mulighed for hurtig applikationsudvikling. Hvert objekt registreres i Windows-registreringsdatabasen ved at køre regsvr32 file.ocx; for at afregistrere bruges regsvr32 /u file.ocx. Objekter kan også bruges til at køre komponenter i forskellige miljøer - for eksempel som applets på websider - selvom denne brug nu betragtes som forældet, da ActiveX-understøttelse blev fjernet i Microsoft Edge og pensioneret med Internet Explorer i 2022-2023. Et indlejret .tlb typebibliotek inde i .rsrc-sektionen beskriver objektets grænseflader til værtsværktøjer.
Det tilrådes at deaktivere ActiveX på grund af de kendte sikkerhedsrisici, det udsætter systemet for. Deaktivering af ActiveX forhindrer .ocx-filer i at blive indlæst af browsere eller ældre værtsapplikationer. Til ny Windows-udvikling har WinForms- og WPF-objekter reelt erstattet ActiveX-modellen.
Sikkerhed og tryghed
RISIKO: HIGHEn OCX er eksekverbar kode, der registrerer sig selv dybt i Windows (COM/CLSID), så den kræver forsigtighed. Risici: Ondsindede eller inficerede ActiveX-objekter kan køre med værtens rettigheder, og ActiveX var historisk set en stor kilde til browser-angreb i Internet Explorer (nu pensioneret). «OCX-download»-sider er en klassisk kanal for malware/PUP og leverer normalt en forkert version af objektet, som alligevel ikke reparerer appen. Regler: Løs fejl om manglende OCX ved at geninstallere det program, der ejer objektet, ikke ved at downloade OCX-filen fra et tredjepartswebsted; hvis du skal anskaffe et kendt Microsoft-objekt (f.eks. MSCOMCTL.OCX), skal du hente det fra den officielle Microsoft-pakke; tjek en ukendt OCX-fils digitale signatur (Egenskaber > Digitale signaturer) og scan den på VirusTotal, før du registrerer den. Registrer aldrig OCX-filer, du ikke har tillid til.
Formatdetaljer
kort fortaltProgrammer der åbner OCX-filer
Tekniske detaljer
dyb specifikation| Filstruktur | PE (Portable Executable) binær - samme container som en .dll; DOS stub + MZ header, PE/COFF headere, sektionstabel, kode/datasektioner og en .rsrc ressourcesektion |
| Magic bytes | 0x4D 0x5A («MZ») ved offset 0; PE-signatur 0x50 0x45 0x00 0x00 ved det offset, der er gemt i DOS e_lfanew-feltet (0x3C) |
| PE-variant | PE32 (x86/32-bit) eller PE32+ (AMD64/x64); DLL-karakteristikflag (0x2000) sat i COFF Characteristics-feltet |
| Påkrævede eksporter | DllRegisterServer, DllUnregisterServer, DllGetClassObject, DllCanUnloadNow - obligatoriske for en selvregistrerende COM-server |
| Registreringsmekanisme | regsvr32 file.ocx skriver CLSID, ProgID og type-biblioteks-GUID'er under HKCR\CLSID\{...} i Windows-registreringsdatabasen; regsvr32 /u fjerner dem |
| COM-grænseflader (UI-objekt) | Skal implementere IUnknown; in-process UI-objekter eksponerer desuden IOleObject, IOleControl, IOleInPlaceObject og IDispatch til scripting og VBA-automatisering |
| Indlejret typebibliotek | En kompileret .tlb typebiblioteks-ressource er typisk indlejret i .rsrc PE-sektionen, som beskriver objektets grænseflader til IDE'er og VBA-værter |
| Byte-orden | Little-endian (Intel/x86 native) |
| Kodning | Binær (kompileret maskinkode - ikke fortolket eller tekstbaseret) |
| Typisk filstørrelse | 20 KB - 10 MB afhængigt af antallet af objekter og indlejrede UI-ressourcer |
| Authenticode-understøttelse | Valgfri Authenticode digital signatur til udgiververifikation; PE-headerens CheckSum-felt giver et grundlæggende integritetstjek |
| MIME-type | application/octet-stream (ingen MIME-type specifikt til .ocx er registreret) |
| Værtsafhængighed | Kan ikke køre selvstændigt; skal instansieres af en COM-bevidst vært: VB6 IDE, MFC/ATL-applikation, Office VBA-brugerformular eller ældre Internet Explorer |
| Sikkerhedsstatus | Betragtes som højrisiko (vilkårlig kørsel af maskinkode i værtsprocessen); fjernet i Microsoft Edge; pensioneret med Internet Explorer i 2022-2023 |
| Forgængerformat | Erstattede 16-bit .vbx (Visual Basic Extension) objekter introduceret med Visual Basic 1.0 i 1991 |
| Platformunderstøttelse | Kun Windows (Win32 / Win64); ingen indfødt understøttelse på macOS eller Linux |
| Udgivet | 1994 (OLE Custom Controls / OCX); rebranded ActiveX Controls in 1996 |
| Seneste version | N/A (tied to the COM/ActiveX model; effectively frozen, legacy on modern Windows) |
| Specifikation | learn.microsoft.com |
OCX-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om OCX-filer.