Softwarefouten oplossen door decompilatie – mag dat?
Een softwareproducent wil doorgaans niet dat een afnemer de software op zijn eigen manier aanpast. Dat is logisch, want gaat dat wel goed? Maar belangrijker is meestal dat de softwareproducent niet wil dat klanten zijn software gaan veranderen. Op 6 oktober 2021 heeft het Europees Hof van Justitie meer duidelijkheid gegeven over de mogelijkheid om als afnemer software te mogen wijzigen, zoals het geval is bij het zogenaamde ‘decompileren’ van software.
De uitspraak van 6 oktober 2021 inzake Top System SA
Wat was de zaak? Het softwarebedrijf Top System SA had een softwarelicentie uitgegeven aan de Belgische staat, met als voorwaarde dat zijn software niet door de gebruiker “gedecompileerd” mocht worden. De Belgische Staat heeft dit toch gedaan om een ‘bug’ (een foutje) op te lossen. Top System SA kwam er achter en begon een procedure.
Software is een soort ritssluiting
Een computer werkt op nullen-en-enen. Die heten ‘objectcodes’. De mens als programmeur denkt niet in nullen-en-enen. De programmeur programmeert in een voor hem begrijpelijke taal of commando’s die tegelijkertijd deze nullen-en-enen laat ontstaan. Die voor mensen leesbare commando’s worden de ‘broncodes’ genoemd. Beschik je daarover dan kun je software wijzigen. Software heeft iets van een ‘ritssluiting’: het past in elkaar maar de linker kant (nullen-en-enen) kan los van de rechterkant (de voor programmeurs leesbare commando’s) bestaan. Het is dan ook scheidbaar, maar een leverancier zal doorgaans zijn afnemers de broncodes niet geven. De softwareleverancier zou dan namelijk ook niet meer nodig zijn voor onderhoud en nieuwe versies.
Software decompileren
Maar wat nu als je ‘een fout’ in de software wil verwijderen omdat de leverancier dat nalaat? Zonder broncodes kun je niet makkelijk wijzigen. Dan is er de mogelijkheid om te decompileren. Dat is het omzetten van machinetaal (de nullen- en-enen) in broncodetaal. Daar komt wel wat bij kijken, maar het kan. Door decompilatie wordt de software voor programmeurs begrijpelijk, en kan de werking van de software achterhaald worden. Met die kennis kan een programmeur wijzigingen aanbrengen in de ‘foute’ software.
Wat is ‘reverse engineering’?
Decompilatie wordt o.a. gebruikt bij ‘reverse engineering’. Reverse engineering is het onderzoeken van een (software) product om daaruit af te leiden wat de precieze interne werking ervan is. Op grond van artikel 6 van de Softwarerichtlijn is decompileren toegestaan, maar dan moet de ‘reverse engineering’ wel noodzakelijk zijn om de samenwerking (interoperabiliteit) met andere software te kunnen bewerkstelligen. Maar wat als je alleen ‘een fout’ wil corrigeren zonder dat er samenwerking met andere software in het spel is? Mag men dan decompileren?
Verduidelijking Hof
Het Europees Hof van Justitie stelt dat de licentienemer van de software het recht heeft om die software te decompileren. Dit om daarmee fouten te corrigeren, ook wanneer deze correctie erin bestaat een functie te deactiveren omdat die de goede werking van de software verstoort. Het resultaat van de decompilatie mag niet gebruikt worden voor andere doeleinden dan de correctie van die fouten; het moet dus een verbetering van de software zijn. Maar dan alleen wanneer dit noodzakelijk is en het moet passen binnen de contractuele afspraken. Voor het decompileren is geen toestemming van de softwareproducent (de auteursrechthebbende) vereist, zolang de decompilatie noodzakelijk is om de software te kunnen gebruiken voor het ‘beoogde doel’. Dus voor een andere software toepassing (een ander doel) mag het niet.
Kortom
Wanneer u als ondernemer software heeft gekocht, kunt u door decompileren fouten verbeteren (een bug), als het doel zélf van de software niet wordt veranderd. Software producenten kunnen dat niet verbieden. Deze uitspraak van het Hof van Justitie van de Europese Unie heeft dus behoorlijk wat duidelijkheid gebracht op dit gebied.
Contact
Heeft u vragen over uw software en de daarmee samenhangende rechten dan kunt u contact opnemen met onze IT-specialist Bert Gravendeel.