La rétro-ingénierie, ou reverse engineering en anglais, est un processus pendant lequel un développeur arrive à déterminer le fonctionnement d’un logiciel sans en avoir le code source. De nombreuses entreprises comme Microsoft ne mettent pas leur code en open source car le code source de Windows est justement ce qui génère de la richesse. Le reverse engineering ou la décompilation consiste à générer des lignes de code à partir d’un logiciel, les reproduire pour en faire un nouveau logiciel. Se pose alors la question des droits d’auteur. Le reverse engineering est-il une atteinte aux droits du développeur originel ? Autrement dit, le reverse engineering est-il légal ?

L’épineuse question de la légalité du reverse engineering

Commençons par rappeler que sur le volet informatique, le reverse engineering consiste à étudier un logiciel pour comprendre son fonctionnement. Il s’agit, concrètement, de décompiler un logiciel ou une application. Rappelons également qu’en droit, un logiciel est défini comme étant une compilation de programmes, de règles et de procédés  liés au fonctionnement d’un ensemble de traitement de données.

Il est aussi utile de noter que la question de la légalité du reverse engineering ne se pose pas lorsqu’il s’agit d’un logiciel open source. La question prend tout son sens toutefois pour les logiciels propriétaires. Vous ne le savez peut-être pas, mais si la licence protège un logiciel, elle ne protège pas pour autant sa fonctionnalité. Dans le cas de la France, l’article L 112-6-1 du Code de Propriété Intellectuelle définit les principes généraux du reverse engineering, et l’autorise légalement dans certaines situations.

Rendre un logiciel compatible avec un autre système

Lorsqu’on étudie le fonctionnement d’un logiciel pour le rendre compatible avec un autre système, la question de la légalité ne se pose pas. Il est en effet tout à fait légal de chercher à faire fonctionner un logiciel donné sur toutes les plateformes existantes. C’est ce qu’on appelle le principe de l’interopérabilité. Par exemple, mettons que vous soyez en train de développer un nouveau système d’exploitation pour téléphone mobile et que vous rencontriez des problèmes en installant certaines applications dessus. Il est tout à fait légitime de décompiler cette application pour trouver le problème et faire en sorte que cette application tourne sur votre nouveau système d’exploitation pour téléphone. De plus, il faut savoir qu’il n’est pas illégal de faire du reverse engineering sur n’importe quel logiciel, pour peu que la licence ne l’interdise pas.

Pour terminer, voici un petit extrait de la licence d’un vieux windows XP OEM :
“Limitations on Reverse Engineering, Decompilation and Disassembly. You may not reverse engineer, decompile, or disassemble the SOFTWARE,”

ce qui veut dire, en français dans le texte :

“Limitations relatives à la Rétro Ingénierie, la décompilation et le désassemblage.  Vous n’êtes pas autorisé à reconstituer la logique du Logiciel, à le décompiler ou à le désassembler,”

A bon entendeur… !