¿Qué es el formato de archivo OCX?
Los archivos .ocx están asociados con el módulo de control ActiveX para el sistema operativo Microsoft Windows. El formato se originó en 1994 como OLE Custom Controls y fue renombrado como ActiveX Controls en 1996. Estructuralmente, un archivo .ocx es un binario Windows PE compilado - efectivamente una .dll que comienza con el encabezado mágico MZ y expone interfaces de control COM, incluyendo la exportación obligatoria DllRegisterServer.
ActiveX es un marco de trabajo de software para gestionar componentes utilizados por aplicaciones desarrolladas en lenguajes de programación como:
- Visual Basic,
- C++,
- Delphi,
- PowerBuilder.
Los controles almacenados en archivos .ocx permiten un intercambio de datos rápido y eficiente entre varias aplicaciones que se ejecutan en Windows. Facilitan la transmisión de información entre elementos y permiten un desarrollo rápido de aplicaciones. Cada control se registra en el Registro de Windows ejecutando regsvr32 archivo.ocx; para anular el registro, use regsvr32 /u archivo.ocx. Los controles también pueden usarse para ejecutar componentes en diversos entornos - por ejemplo, como applets de páginas web -, aunque este uso se considera actualmente heredado (legacy) ya que el soporte de ActiveX se eliminó en Microsoft Edge y se retiró con Internet Explorer en 2022-2023. Una biblioteca de tipos .tlb incrustada dentro de la sección .rsrc describe las interfaces del control para las herramientas anfitrionas.
Se recomienda deshabilitar ActiveX debido a los riesgos de seguridad conocidos a los que expone al sistema. Deshabilitar ActiveX evita que los archivos .ocx sean cargados por navegadores o aplicaciones anfitrionas heredadas. Para el nuevo desarrollo en Windows, los controles WinForms y WPF han reemplazado efectivamente el modelo ActiveX.
Seguridad y protección
RIESGO: HIGHUn OCX es código ejecutable que se registra profundamente en Windows (COM/CLSID), por lo que requiere precaución. Riesgos: los controles ActiveX maliciosos o con troyanos pueden ejecutarse con los privilegios de la aplicación anfitriona, y ActiveX fue históricamente un vector principal de ataques «drive-by» en Internet Explorer (ahora retirado). Los sitios de «descarga de OCX» son un canal clásico de malware/PUP y generalmente suministran un control de versión incorrecta que no reparará la aplicación de todos modos. Reglas: solucione los errores de OCX faltante reinstalando el programa propietario del control, no descargando el OCX desde un sitio de terceros; si debe obtener un control conocido de Microsoft (p. ej., MSCOMCTL.OCX), consígalo del paquete oficial de Microsoft; verifique la firma digital de un OCX desconocido (Propiedades > Firmas digitales) y analícelo en VirusTotal antes de registrarlo. Nunca registre archivos OCX en los que no confíe.
Detalles del formato
en pocas palabrasProgramas que abren archivos OCX
Detalles técnicos
especificación profunda| Estructura de archivo | Binario PE (Portable Executable) - mismo contenedor que una .dll; stub de DOS + encabezado MZ, encabezados PE/COFF, tabla de secciones, secciones de código/datos y una sección de recursos .rsrc |
| Bytes mágicos | 0x4D 0x5A («MZ») en el desplazamiento 0; firma PE 0x50 0x45 0x00 0x00 en el desplazamiento almacenado en el campo e_lfanew de DOS (0x3C) |
| Variante PE | PE32 (x86/32 bits) o PE32+ (AMD64/x64); indicador de característica DLL (0x2000) establecido en el campo COFF Characteristics |
| Exportaciones requeridas | DllRegisterServer, DllUnregisterServer, DllGetClassObject, DllCanUnloadNow - obligatorias para un servidor COM de autorregistro |
| Mecanismo de registro | regsvr32 archivo.ocx escribe CLSID, ProgID y GUIDs de biblioteca de tipos bajo HKCR\CLSID\{...} en el Registro de Windows; regsvr32 /u los elimina |
| Interfaces COM (control UI) | Debe implementar IUnknown; los controles de interfaz de usuario en proceso exponen adicionalmente IOleObject, IOleControl, IOleInPlaceObject e IDispatch para scripting y automatización de VBA |
| Biblioteca de tipos incrustada | Un recurso de biblioteca de tipos .tlb compilado suele estar incrustado en la sección PE .rsrc, describiendo las interfaces del control para IDEs y anfitriones VBA |
| Orden de bytes | Little-endian (nativo de Intel/x86) |
| Codificación | Binario (código nativo compilado - no interpretado ni basado en texto) |
| Tamaño de archivo típico | 20 KB - 10 MB dependiendo del número de controles y recursos de interfaz de usuario incrustados |
| Soporte Authenticode | Firma digital Authenticode opcional para verificación del editor; el campo CheckSum del encabezado PE proporciona una comprobación de integridad básica |
| Tipo MIME | application/octet-stream (no hay un tipo MIME específico registrado para .ocx) |
| Dependencia del anfitrión | No puede ejecutarse de forma independiente; debe ser instanciado por un anfitrión compatible con COM: IDE de VB6, aplicación MFC/ATL, formulario de usuario de Office VBA o el heredado Internet Explorer |
| Estado de seguridad | Considerado de alto riesgo (ejecución de código nativo arbitrario en el proceso anfitrión); eliminado en Microsoft Edge; retirado con Internet Explorer en 2022-2023 |
| Formato predecesor | Reemplazó a los controles .vbx (Visual Basic Extension) de 16 bits introducidos con Visual Basic 1.0 en 1991 |
| Soporte de plataforma | Solo Windows (Win32 / Win64); sin soporte nativo en macOS o Linux |
| Lanzado | 1994 (OLE Custom Controls / OCX); rebranded ActiveX Controls in 1996 |
| Última versión | N/A (tied to the COM/ActiveX model; effectively frozen, legacy on modern Windows) |
| Especificación | learn.microsoft.com |
Conversiones de OCX
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos OCX.