Le droit européen autorise la rétro-ingénierie d'un logiciel dans trois cas précis : observer et tester son fonctionnement, le décompiler pour corriger des erreurs, et le décompiler pour assurer l'interopérabilité avec un autre programme. Hors de ces cas, décompiler un logiciel sans l'accord de son titulaire porte atteinte à ses droits. L'arrivée d'agents de code capables de mener ces analyses en quelques minutes ne change pas la règle — elle rend sa connaissance indispensable, parce que n'importe quel développeur peut désormais le faire.
Cet article décrit le cadre légal. Il ne constitue pas un conseil juridique : un cas concret se valide avec un avocat.
Les textes applicables
Le cadre est fixé par la directive 2009/24/CE concernant la protection juridique des programmes d'ordinateur, transposée en France à l'article L122-6-1 du code de la propriété intellectuelle. Le principe : reproduire le code d'un programme et traduire sa forme — ce que fait toute décompilation — relève des droits exclusifs de son auteur. Les exceptions sont limitées et encadrées.
Ce qui est permis, et à quelles conditions
| Ce que vous faites | Base légale | Condition principale | Le contrat peut-il l'interdire ? |
|---|---|---|---|
| Observer, étudier, tester le fonctionnement | Art. 5 §3 de la directive · CPI L122-6-1 III | Avoir le droit d'utiliser le programme, et le faire en le chargeant, l'affichant ou l'exécutant normalement | Non — clause nulle (art. 8) |
| Décompiler pour l'interopérabilité | Art. 6 de la directive · CPI L122-6-1 IV | Informations indispensables, non accessibles autrement, limitées aux parties nécessaires | Non — clause nulle (art. 8) |
| Décompiler pour corriger des erreurs | Art. 5 §1 de la directive · CPI L122-6-1 I | Nécessaire pour utiliser le programme conformément à sa destination | Oui, le contrat peut l'encadrer |
| Faire une copie de sauvegarde | Art. 5 §2 · CPI L122-6-1 II | Nécessaire à l'utilisation | Non |
La dernière colonne est la plus utile en pratique. Une licence qui interdit d'observer le fonctionnement d'un logiciel, ou de le décompiler pour l'interopérabilité, contient une clause sans effet : l'article 8 de la directive la déclare nulle. En revanche, la correction d'erreurs s'applique « en l'absence de dispositions contractuelles spécifiques » : l'éditeur peut s'en réserver la maîtrise.
Observer n'est pas décompiler
La distinction décide de presque tout.
Observer, étudier, tester, c'est regarder le programme fonctionner : ce qu'il affiche, ce qu'il écrit, ce qu'il envoie sur le réseau, comment il réagit à telle entrée. C'est un droit de l'utilisateur légitime, que le contrat ne peut pas retirer, à condition de rester dans les opérations qu'il a le droit d'effectuer.
Décompiler, c'est reconstituer une forme lisible du code à partir du binaire. C'est là que les conditions deviennent strictes.
Un agent de rétro-ingénierie fait souvent les deux dans la même session. Savoir lequel on lui demande est le premier réflexe à prendre.
La décompilation pour l'interopérabilité : trois conditions cumulatives
L'article 6 de la directive autorise la décompilation sans autorisation quand elle est indispensable pour obtenir les informations nécessaires à l'interopérabilité d'un programme créé de façon indépendante. Il faut réunir trois conditions :
- Les actes sont accomplis par une personne ayant le droit d'utiliser le programme, ou pour son compte.
- Les informations nécessaires n'étaient pas déjà facilement accessibles — par une documentation, une API publique, ou une demande à l'éditeur.
- Les actes se limitent aux parties du programme nécessaires à l'interopérabilité.
Et trois interdictions s'appliquent aux informations obtenues : les utiliser à d'autres fins, les communiquer à des tiers sauf nécessité pour l'interopérabilité, ou s'en servir pour développer un programme substantiellement similaire.
La décompilation pour corriger des erreurs : ce qu'a jugé la Cour de justice
Dans l'arrêt Top System (C-13/20, 6 octobre 2021), la Cour de justice de l'Union européenne a jugé que l'acquéreur légitime d'un programme peut le décompiler pour corriger des erreurs qui affectent son fonctionnement, au titre de l'article 5 §1. Les conditions de l'article 6 ne s'appliquent pas, en tant que telles, à ce cas.
Deux limites demeurent : la décompilation doit être nécessaire pour utiliser le programme conformément à sa destination, et son résultat ne peut servir qu'à corriger les erreurs. Le contrat de licence peut par ailleurs organiser ces corrections — par exemple en les réservant à l'éditeur au titre de la maintenance.
Le point que les agents rendent nouveau : à qui part le code décompilé ?
Un agent de code qui décompile un programme envoie ensuite ce qu'il a extrait au fournisseur du modèle de langage, pour le lire et l'expliquer. Or la directive interdit de communiquer à des tiers les informations obtenues par décompilation, sauf nécessité pour l'interopérabilité.
La question de savoir si l'envoi à un fournisseur de modèle constitue une telle communication n'est pas tranchée par les textes. Elle mérite d'être posée avant l'analyse, surtout pour un logiciel tiers sous licence. Deux précautions réduisent l'exposition : un modèle exécuté localement, ou un contrat avec le fournisseur qui exclut toute conservation et toute réutilisation des données transmises.
Le même raisonnement vaut pour la confidentialité au sens large : un logiciel métier décompilé peut révéler des règles commerciales, des secrets d'affaires ou des données personnelles embarquées.
La vérification avant de lancer un agent de rétro-ingénierie
- Avez-vous le droit d'utiliser ce programme ? Licence valide, exemplaire acquis légitimement. Sans cela, aucune exception ne s'applique.
- Que demandez-vous à l'agent : observer ou décompiler ? Observer est un droit ; décompiler doit entrer dans un cas autorisé.
- Pour quel but ? Interopérabilité, correction d'erreurs, ou autre chose — auquel cas il faut l'accord du titulaire.
- L'information était-elle disponible autrement ? Documentation, API, demande écrite à l'éditeur. Gardez la trace de la demande.
- Où partent les résultats ? Modèle local, ou fournisseur avec engagement de non-conservation.
- Que deviendra ce que vous apprenez ? Jamais un produit concurrent substantiellement similaire.
Pour les outils eux-mêmes, voir notre analyse de REA, l'outil qui confie la rétro-ingénierie à un agent de code. Pour encadrer l'usage de ces agents dans l'entreprise, les bonnes pratiques de gouvernance des agents IA s'appliquent pleinement.
Questions fréquentes
La rétro-ingénierie est-elle légale en France ? Oui, dans des cas précis. Observer, étudier et tester le fonctionnement d'un logiciel qu'on a le droit d'utiliser est toujours permis. Le décompiler n'est autorisé que pour l'interopérabilité ou la correction d'erreurs, sous conditions. Le cadre est fixé par la directive 2009/24/CE et l'article L122-6-1 du code de la propriété intellectuelle.
Une licence peut-elle interdire la rétro-ingénierie ? Pas entièrement. L'article 8 de la directive rend nulle toute clause contraire au droit d'observer et de tester le fonctionnement, ou à la décompilation pour l'interopérabilité. En revanche, l'éditeur peut encadrer par contrat la décompilation destinée à corriger des erreurs.
Peut-on décompiler un logiciel pour corriger un bug ? Oui, selon la Cour de justice de l'Union européenne (arrêt Top System, C-13/20, 6 octobre 2021), si c'est nécessaire pour utiliser le programme conformément à sa destination, et à condition de n'utiliser le résultat que pour corriger les erreurs. Le contrat de licence peut organiser ces corrections.
Utiliser un agent IA pour décompiler change-t-il le cadre légal ? Non, les règles sont les mêmes. Mais l'agent transmet ce qu'il extrait au fournisseur du modèle, ce qui pose la question de la communication à des tiers, interdite par la directive hors interopérabilité. Un modèle local ou un engagement contractuel de non-conservation réduit ce risque.
Sources
- Directive 2009/24/CE concernant la protection juridique des programmes d'ordinateur — articles 5, 6 et 8
- Cour de justice de l'Union européenne, Top System c. Selor, C-13/20, 6 octobre 2021
- Code de la propriété intellectuelle, article L122-6-1


