La décompilation consiste à générer à partir d'un logiciel des lignes de code presque comme si elles avaient été écrites par le développeur lui-même. Cela permet de comprendre ses secrets et de les copier si on le veut. C'est la raison pour laquelle Microsoft et d'autres entreprises commerciales ne mettent pas à disposition le code informatique qui est derrière Windows par exemple. Car une fois les lignes de code à disposition d'un tiers, ce dernier peut alors modifier, adapter, copier ce code pour en faire un logiciel différent. Il peut le recompiler, ce qui le rend utilisable et rien ne l'empêcherait de le commercialiser sous un autre nom au mépris du travail du développeur original. S'il est impossible de décompiler le système d'exploitation Windows, dû à sa taille et sa complexité, de plus petits programmes pourraient très bien subir ce viol.
Un logiciel est considéré comme une œuvre littéraire
Avec la directive Software (Directive 91/250), un logiciel est considéré comme une œuvre littéraire qui ne peut faire l'objet de plagiat, d'altération et d'abus du même type. C'est pourquoi la directive donne des droits exclusifs à la société qui l'a développé par rapport au client qui l'a acquis : seule la première peut autoriser ce dernier à copier le programme, à le faire fonctionner (on s'en doute), à l'adapter, le traduire, l'arranger ou l'altérer, toutes choses réglées par la licence d'utilisation. C'est elle aussi qui a évidemment les droits exclusifs pour vendre ou louer le programme.
Ce qu'on ignore, c'est que cette directive permet au client qui a acquis le logiciel légalement d'aller chipoter dans le code sans autorisation si c'est pour lui permettre de l'utiliser dans le but pour lequel il a été acheté. L'exemple cité est d'ailleurs la correction d'erreurs sans devoir faire appel au fournisseur. La directive permet aussi au client de faire une copie de sauvegarde du programme sans autorisation. C'est logique. Le client peut observer, étudier et tester le fonctionnement du programme pour comprendre comment il fonctionne ainsi que les principes sous-jacents pour autant qu'il ne le fait que dans le cadre d'une utilisation normale. Ceci couvre en partie la pratique du reverse engineering mais si on ne peut que faire tourner le logiciel "légalement", ce reverse engineering n'est pas simple. La décompilation va un cran plus loin. Il vise à percer les secrets du code.
Un arrêt Janus
L'arrêt rendu le 6 octobre opposait le Selor à Top Systems. Le Selor est l'organisme qui organise les recrutements de l'administration fédérale belge. Top Systems est son fournisseur informatique. Ce dernier a porté plainte contre le Selor devant les tribunaux car le Selor avait décompilé, aux dires de Top Systems, les programmes qu'il lui avait fournis. Le Selor n'a pas nié mais a expliqué qu'il l'avait fait pour pouvoir désactiver certaines fonctionnalités du programme qui l'empêchait de fonctionner dans ce qu'il devait accomplir.
Pour Top Systems, la décompilation n'est pas autorisée d'après la directive (via l'article 6) non pas pour corriger une erreur mais uniquement pour assurer l'interopérabilité du programme avec d'autres programmes du client. C'est le cas de figure suivant : quand on achète un programme, il est fourni tel quel sans tenir compte de l'environnement dans lequel il fonctionnera. Il faut parfois pouvoir l'adapter ce que la directive prévoit. Top Systems espérait ainsi obtenir la condamnation du Selor : la décompilation n'est pas autorisée pour corriger une erreur.
L'arrêt rendu est magnifique dans son côté Janus : la Cour affirme que la décompilation, c'est une forme d'altération du code. En ce sens, la décompilation est du ressort exclusif de la société qui a la propriété intellectuelle du logiciel (récital 39). Cela ne fera pas plaisir à tous les bidouilleurs qui rebâtissent des logiciels sur base de décompilations des logiciels de tiers sans autorisation.
Mais comme l'altération était déjà autorisée pour corriger une erreur par cette directive (via l'article 5), Selor a aussi gain de cause en même temps ! Il pouvait décompiler ici, et ici seulement, pour corriger l'erreur et rien d'autre.
Un coup de pouce pour l'open source
On ne parle pas ici des logiciels en accès libre, code compris (les open source) de qualité excellente où la réutilisation est au contraire encouragée et l'amélioration aisée. Ces logiciels open source sont arrivés face à l'intransigeance aux premiers temps de la micro-informatique d'un Microsoft qui maintenait un secret absolu sur le code derrière Windows, peu importe les bugs, les erreurs, la mauvaise qualité parfois de ses programmes. C'est ainsi que Linux est né et bien d'autres programmes issus de code open source librement accessibles. Nul doute que cet arrêt de la cour européenne qui confirme le côté boîte noire des programmes commerciaux (puisque décompiler est illégal) donnera un coup de pouce supplémentaire aux open sources.
____________
Pour en savoir plus : JUDGMENT OF THE COURT (Fifth Chamber), Case C13/20, 6 October 2021, Reference for a preliminary ruling - Copyright and related rights - Legal protection of computer programs - Directive 91/250/EEC - Article 5 - Exceptions to the restricted acts - Acts necessary to enable the lawful purchaser to correct errors - Concept - Article 6 - Decompilation - Conditions.