O que é o formato de ficheiro OCX?
Arquivos .ocx estão associados ao módulo de controle ActiveX para o sistema operacional Microsoft Windows. O formato originou-se em 1994 como OLE Custom Controls e foi renomeado para ActiveX Controls em 1996. Estruturalmente, um arquivo .ocx é um binário Windows PE compilado - efetivamente uma .dll que começa com o cabeçalho magic MZ e expõe interfaces de controle COM, incluindo a exportação obrigatória DllRegisterServer.
ActiveX é um framework de software para gerenciar componentes usados por aplicativos desenvolvidos em linguagens de programação como:
- Visual Basic,
- C++,
- Delphi,
- PowerBuilder.
Controles armazenados em arquivos .ocx permitem a troca de dados rápida e eficiente entre vários aplicativos executados no Windows. Eles facilitam a transmissão de informações entre elementos e permitem o desenvolvimento rápido de aplicações. Cada controle é registrado no Registro do Windows executando regsvr32 arquivo.ocx; para desregistrar, use regsvr32 /u arquivo.ocx. Os controles também podem ser usados para executar componentes em vários ambientes - por exemplo, como applets de navegador da web em páginas - embora esse uso seja agora considerado legado, já que o suporte ao ActiveX foi removido no Microsoft Edge e aposentado com o Internet Explorer em 2022-2023. Uma biblioteca de tipos .tlb incorporada dentro da seção .rsrc descreve as interfaces do controle para as ferramentas hospedeiras.
É aconselhável desativar o ActiveX devido aos riscos de segurança conhecidos aos quais ele expõe o sistema. Desativar o ActiveX impede que arquivos .ocx sejam carregados por navegadores ou aplicativos hospedeiros legados. Para novos desenvolvimentos no Windows, os controles WinForms e WPF substituíram efetivamente o modelo ActiveX.
Segurança e proteção
RISCO: HIGHUm OCX é um código executável que se registra profundamente no Windows (COM/CLSID), por isso exige cautela. Riscos: controles ActiveX maliciosos ou com trojans podem ser executados com os privilégios do app hospedeiro, e o ActiveX foi historicamente um grande vetor de ataques drive-by no Internet Explorer (agora aposentado). Sites de «download de OCX» são um canal clássico de malware/PUP e geralmente fornecem um controle de versão errada que não corrigirá o app de qualquer maneira. Regras: corrija erros de OCX ausente reinstalando o programa proprietário do controle, não baixando o OCX de um site de terceiros; se precisar obter um controle conhecido da Microsoft (ex: MSCOMCTL.OCX), obtenha-o do pacote oficial da Microsoft; verifique a assinatura digital de um OCX desconhecido (Propriedades > Assinaturas Digitais) e escaneie-o no VirusTotal antes de registrá-lo. Nunca registre arquivos OCX nos quais você não confia.
Detalhes do formato
em resumoProgramas que abrem arquivos OCX
Detalhes técnicos
especificação profunda| Estrutura do arquivo | Binário PE (Portable Executable) - mesmo contêiner de uma .dll; stub DOS + cabeçalho MZ, cabeçalhos PE/COFF, tabela de seções, seções de código/dados e uma seção de recursos .rsrc |
| Magic bytes | 0x4D 0x5A («MZ») no deslocamento 0; assinatura PE 0x50 0x45 0x00 0x00 no deslocamento armazenado no campo DOS e_lfanew (0x3C) |
| Variante PE | PE32 (x86/32 bits) ou PE32+ (AMD64/x64); sinalizador de característica DLL (0x2000) definido no campo COFF Characteristics |
| Exportações obrigatórias | DllRegisterServer, DllUnregisterServer, DllGetClassObject, DllCanUnloadNow - obrigatórias para um servidor COM de autorregistro |
| Mecanismo de registro | regsvr32 arquivo.ocx grava CLSID, ProgID e GUIDs de biblioteca de tipos sob HKCR\CLSID\{...} no Registro do Windows; regsvr32 /u os remove |
| Interfaces COM (controle de UI) | Deve implementar IUnknown; controles de UI em processo expõem adicionalmente IOleObject, IOleControl, IOleInPlaceObject e IDispatch para scripting e automação VBA |
| Biblioteca de tipos incorporada | Um recurso de biblioteca de tipos .tlb compilado é normalmente incorporado na seção PE .rsrc, descrevendo as interfaces do controle para IDEs e hospedeiros VBA |
| Ordem dos bytes | Little-endian (nativo Intel/x86) |
| Codificação | Binário (código nativo compilado - não interpretado ou baseado em texto) |
| Tamanho típico do arquivo | 20 KB - 10 MB dependendo do número de controles e recursos de UI incorporados |
| Suporte Authenticode | Assinatura digital Authenticode opcional para verificação do editor; o campo CheckSum do cabeçalho PE fornece uma verificação básica de integridade |
| Tipo MIME | application/octet-stream (nenhum tipo MIME específico para .ocx está registrado) |
| Dependência de hospedeiro | Não pode ser executado de forma autônoma; deve ser instanciado por um hospedeiro compatível com COM: IDE do VB6, aplicativo MFC/ATL, formulário de usuário Office VBA ou Internet Explorer legado |
| Status de segurança | Considerado de alto risco (execução de código nativo arbitrário no processo hospedeiro); removido no Microsoft Edge; aposentado com o Internet Explorer em 2022-2023 |
| Formato predecessor | Substituiu os controles .vbx (Visual Basic Extension) de 16 bits introduzidos com o Visual Basic 1.0 em 1991 |
| Suporte de plataforma | Apenas Windows (Win32 / Win64); sem suporte nativo no macOS ou Linux |
| Lançado | 1994 (OLE Custom Controls / OCX); rebranded ActiveX Controls in 1996 |
| Versão mais recente | N/A (tied to the COM/ActiveX model; effectively frozen, legacy on modern Windows) |
| Especificação | learn.microsoft.com |
Conversões de OCX
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos OCX.