Vad är filformatet OCX?
.ocx-filer är associerade med ActiveX-kontrollmodulen för operativsystemet Microsoft Windows. Formatet uppstod 1994 som OLE Custom Controls och bytte namn till ActiveX Controls 1996. Strukturellt sett är en .ocx-fil en kompilerad Windows PE-binär - i praktiken en .dll som börjar med MZ magic header och exponerar COM-kontrollgränssnitt, inklusive den obligatoriska DllRegisterServer-exporten.
ActiveX är ett ramverk för programvara för att hantera komponenter som används av applikationer utvecklade i programmeringsspråk som:
- Visual Basic,
- C++,
- Delphi,
- PowerBuilder.
Kontroller lagrade i .ocx-filer möjliggör snabbt och effektivt datautbyte mellan olika applikationer som körs på Windows. De underlättar informationsöverföring mellan element och möjliggör snabb applikationsutveckling. Varje kontroll registreras i Windows-registret genom att köra regsvr32 file.ocx; för att avregistrera, använd regsvr32 /u file.ocx. Kontroller kan också användas för att köra komponenter i olika miljöer - till exempel som appletar på webbsidor - även om denna användning nu anses vara föråldrad sedan ActiveX-stöd togs bort i Microsoft Edge och pensionerades med Internet Explorer under 2022-2023. Ett inbäddat .tlb-typprogrambibliotek inuti .rsrc-sektionen beskriver kontrollens gränssnitt för värdverktyg.
Det rekommenderas att inaktivera ActiveX på grund av de kända säkerhetsrisker det utsätter systemet för. Inaktivering av ActiveX förhindrar att .ocx-filer laddas av webbläsare eller äldre värdapplikationer. För ny Windows-utveckling har WinForms- och WPF-kontroller effektivt ersatt ActiveX-modellen.
Säkerhet & trygghet
RISK: HIGHEn OCX är exekverbar kod som registrerar sig djupt i Windows (COM/CLSID), så den bör hanteras med försiktighet. Risker: skadliga eller trojaniserade ActiveX-kontroller kan köras med värdappens behörigheter, och ActiveX var historiskt sett en stor vektor för drive-by-attacker i Internet Explorer (nu pensionerad). Webbplatser för «OCX-nedladdning» är en klassisk kanal för skadlig kod/PUP och tillhandahåller vanligtvis en kontroll med fel version som ändå inte kommer att fixa appen. Regler: fixa fel med saknade OCX-filer genom att installera om programmet som äger kontrollen, inte genom att ladda ner OCX-filen från en tredjepartssida; om du måste skaffa en känd Microsoft-kontroll (t.ex. MSCOMCTL.OCX), hämta den från det officiella Microsoft-paketet; kontrollera en okänd OCX-fils digitala signatur (Egenskaper > Digitala signaturer) och skanna den på VirusTotal innan du registrerar den. Registrera aldrig OCX-filer som du inte litar på.
Formatdetaljer
i ett nötskalProgram som öppnar OCX-filer
Tekniska detaljer
djup specifikation| Filstruktur | PE (Portable Executable) binär - samma behållare som en .dll; DOS-stub + MZ-header, PE/COFF-headers, sektionstabell, kod/datasektioner och en .rsrc-resurssektion |
| Magic bytes | 0x4D 0x5A («MZ») vid offset 0; PE-signatur 0x50 0x45 0x00 0x00 vid den offset som lagras i DOS e_lfanew-fältet (0x3C) |
| PE-variant | PE32 (x86/32-bitars) eller PE32+ (AMD64/x64); DLL-karakteristikflagga (0x2000) satt i fältet COFF Characteristics |
| Nödvändiga exporter | DllRegisterServer, DllUnregisterServer, DllGetClassObject, DllCanUnloadNow - obligatoriska för en självregistrerande COM-server |
| Registreringsmekanism | regsvr32 file.ocx skriver CLSID, ProgID och typprogrambiblioteks-GUID:er under HKCR\CLSID\{...} i Windows-registret; regsvr32 /u tar bort dem |
| COM-gränssnitt (UI-kontroll) | Måste implementera IUnknown; UI-kontroller i processen exponerar dessutom IOleObject, IOleControl, IOleInPlaceObject och IDispatch för skriptning och VBA-automatisering |
| Inbäddat typprogrambibliotek | En kompilerad .tlb-typprogrambiblioteksresurs är vanligtvis inbäddad i PE-sektionen .rsrc, vilket beskriver kontrollens gränssnitt för IDE:er och VBA-värdar |
| Byteordning | Little-endian (Intel/x86-nativ) |
| Kodning | Binär (kompilerad nativ kod - inte tolkad eller textbaserad) |
| Typisk filstorlek | 20 KB - 10 MB beroende på antal kontroller och inbäddade UI-resurser |
| Authenticode-stöd | Valfri digital Authenticode-signatur för verifiering av utgivare; PE-headerns CheckSum-fält ger en grundläggande integritetskontroll |
| MIME-typ | application/octet-stream (ingen specifik MIME-typ för .ocx är registrerad) |
| Värdberoende | Kan inte köras fristående; måste instansieras av en COM-medveten värd: VB6 IDE, MFC/ATL-applikation, Office VBA-användarformulär eller äldre Internet Explorer |
| Säkerhetsstatus | Anses vara högrisk (godtycklig körning av nativ kod i värdprocessen); borttagen i Microsoft Edge; pensionerad med Internet Explorer under 2022-2023 |
| Föregångarformat | Ersatte 16-bitars .vbx-kontroller (Visual Basic Extension) som introducerades med Visual Basic 1.0 år 1991 |
| Plattformsstöd | Endast Windows (Win32 / Win64); inget nativt stöd på macOS eller Linux |
| Släppt | 1994 (OLE Custom Controls / OCX); rebranded ActiveX Controls in 1996 |
| Senaste version | N/A (tied to the COM/ActiveX model; effectively frozen, legacy on modern Windows) |
| Specifikation | learn.microsoft.com |
OCX-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om OCX-filer.