Qu'est-ce que le format de fichier OCX ?
Les fichiers .ocx sont associés au module de contrôle ActiveX pour le système d'exploitation Microsoft Windows. Le format est né en 1994 sous le nom de OLE Custom Controls et a été rebaptisé ActiveX Controls en 1996. Structurellement, un fichier .ocx est un binaire Windows PE compilé - concrètement une .dll qui commence par l'en-tête magique MZ et expose des interfaces de contrôle COM, incluant l'exportation obligatoire DllRegisterServer.
ActiveX est un framework logiciel pour la gestion de composants utilisés par des applications développées dans des langages de programmation tels que :
- Visual Basic,
- C++,
- Delphi,
- PowerBuilder.
Les contrôles stockés dans les fichiers .ocx permettent un échange de données rapide et efficace entre diverses applications fonctionnant sous Windows. Ils facilitent la transmission d'informations entre les éléments et permettent un développement rapide d'applications. Chaque contrôle est enregistré dans le Registre Windows en exécutant regsvr32 fichier.ocx ; pour le désenregistrer, utilisez regsvr32 /u fichier.ocx. Les contrôles peuvent également être utilisés pour exécuter des composants dans divers environnements - par exemple, comme applets de navigateur web intégrées - bien que cet usage soit désormais considéré comme obsolète depuis que le support d'ActiveX a été abandonné dans Microsoft Edge et retiré avec Internet Explorer en 2022-2023. Une bibliothèque de types .tlb intégrée dans la section .rsrc décrit les interfaces du contrôle aux outils hôtes.
Il est conseillé de désactiver ActiveX en raison des risques de sécurité connus auxquels il expose le système. La désactivation d'ActiveX empêche le chargement des fichiers .ocx par les navigateurs ou les applications hôtes héritées. Pour le nouveau développement Windows, les contrôles WinForms et WPF ont efficacement remplacé le modèle ActiveX.
Sécurité et sûreté
RISQUE : HIGHUn OCX est un code exécutable qui s'enregistre profondément dans Windows (COM/CLSID), il mérite donc de la prudence. Risques : des contrôles ActiveX malveillants ou trojanisés peuvent s'exécuter avec les privilèges de l'application hôte, et ActiveX était historiquement un vecteur majeur d'attaques par navigateur dans Internet Explorer (désormais retiré). Les sites de « téléchargement d'OCX » sont un canal classique de malwares/PUP et fournissent généralement un contrôle de version incorrect qui ne réparera pas l'application. Règles : corrigez les erreurs d'OCX manquant en réinstallant le programme propriétaire du contrôle, pas en téléchargeant l'OCX sur un site tiers ; si vous devez obtenir un contrôle Microsoft connu (ex: MSCOMCTL.OCX), récupérez-le via le package officiel de Microsoft ; vérifiez la signature numérique d'un OCX inconnu (Propriétés > Signatures numériques) et scannez-le sur VirusTotal avant de l'enregistrer. N'enregistrez jamais de fichiers OCX auxquels vous ne faites pas confiance.
Détails du format
en brefProgrammes qui ouvrent les fichiers OCX
Détails techniques
spécifications approfondies| Structure du fichier | Binaire PE (Portable Executable) - même conteneur qu'une .dll ; stub DOS + en-tête MZ, en-têtes PE/COFF, table des sections, sections de code/données et une section de ressources .rsrc |
| Octets magiques | 0x4D 0x5A (« MZ ») à l'offset 0 ; signature PE 0x50 0x45 0x00 0x00 à l'offset stocké dans le champ DOS e_lfanew (0x3C) |
| Variante PE | PE32 (x86/32 bits) ou PE32+ (AMD64/x64) ; indicateur de caractéristique DLL (0x2000) défini dans le champ COFF Characteristics |
| Exportations requises | DllRegisterServer, DllUnregisterServer, DllGetClassObject, DllCanUnloadNow - obligatoires pour un serveur COM auto-enregistrable |
| Mécanisme d'enregistrement | regsvr32 fichier.ocx écrit les GUID de CLSID, ProgID et bibliothèque de types sous HKCR\CLSID\{...} dans le Registre Windows ; regsvr32 /u les supprime |
| Interfaces COM (contrôle UI) | Doit implémenter IUnknown ; les contrôles d'interface utilisateur en cours de processus exposent en plus IOleObject, IOleControl, IOleInPlaceObject et IDispatch pour le scripting et l'automatisation VBA |
| Bibliothèque de types intégrée | Une ressource de bibliothèque de types .tlb compilée est généralement intégrée dans la section PE .rsrc, décrivant les interfaces du contrôle aux IDE et aux hôtes VBA |
| Ordre des octets | Little-endian (natif Intel/x86) |
| Encodage | Binaire (code natif compilé - non interprété ou basé sur du texte) |
| Taille typique du fichier | 20 Ko - 10 Mo selon le nombre de contrôles et de ressources d'interface utilisateur intégrées |
| Support Authenticode | Signature numérique Authenticode optionnelle pour la vérification de l'éditeur ; le champ CheckSum de l'en-tête PE fournit un contrôle d'intégrité de base |
| Type MIME | application/octet-stream (aucun type MIME spécifique à .ocx n'est enregistré) |
| Dépendance de l'hôte | Ne peut pas s'exécuter seul ; doit être instancié par un hôte compatible COM : IDE VB6, application MFC/ATL, formulaire utilisateur Office VBA ou Internet Explorer hérité |
| Statut de sécurité | Considéré comme à haut risque (exécution de code natif arbitraire dans le processus hôte) ; abandonné dans Microsoft Edge ; retiré avec Internet Explorer en 2022-2023 |
| Format prédécesseur | A remplacé les contrôles .vbx (Visual Basic Extension) 16 bits introduits avec Visual Basic 1.0 en 1991 |
| Support plateforme | Windows (Win32 / Win64) uniquement ; aucun support natif sur macOS ou Linux |
| Publié | 1994 (OLE Custom Controls / OCX); rebranded ActiveX Controls in 1996 |
| Dernière version | N/A (tied to the COM/ActiveX model; effectively frozen, legacy on modern Windows) |
| Spécification | learn.microsoft.com |
Conversions OCX
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers OCX.