Mag je Legend of Zelda decompileren en een bitwise identieke versie maken?

| AE 13045 | Intellectuele rechten | 6 reacties

aerozol / Pixabay

Het Zelda Reverse Engineering Team meldt dat ze vrijwel klaar zijn met het decompileren van de binaries van The Legend of Zelda: Ocarina of Time voor de Nintendo 64. Dat las ik bij Tweakers vorige week. Nintendo is fel tegen fanprojecten zoals ports van hun games naar andere platformen, zo voegt men daaraan toe. Toch meent dit project legaal te opereren binnen het auteursrecht, wat natuurlijk de vraag oproept hoe dat dan zit met decompileren, namaken en porten van software.

Legend of Zelda is een klassieke serie voor Nintendo-gamers, en Ocarina of Time (1998) de bekendste uit de reeks. Het spel was echter nooit beschikbaar voor moderne computers, totdat dus deze groep enthousiaste programmeurs haar decompilatie voltooide. De binaries (de machine-leesbare code van het programma) zijn via decompilatie terugvertaald naar broncode, die door mensen, althans programmeurs, gelezen en aangepast kan worden.

Punt is alleen dat dat aanpassen (en het produceren van nieuwe binaries) inbreuk op auteursrecht is. Maar het RET doet dan ook iets anders: ze vogelen uit wat de N64 binaries doen, en schrijven dan zelf broncode die na compilatie datzelfde doet. Dat is géén inbreuk op auteursrechten, want achterhalen wat iets doet is legaal, en in je eigen woorden dat navertellen is dat ook.

Deze nieuwe code is dus een soort van spirituele kloon: hij doet hetzelfde, maar op een eigen manier en zonder code van Nintendo over te nemen. Maar daarmee is men er nog niet:

But even though the game’s code has been fully decompiled, there’s still a lot of remaining work for the ZRET team including creating documentation, re-naming and re-organisation of code and definitions, and support for asset-handling so viewing or modifying on modern computers is easier.
Zodra je natuurlijk originele beelden van personages (of achtergronden of andere assets) uit het spel gaat overnemen, trap je alsnog in de auteursrechtinbreuk. Ik ben benieuwd hoe ze dat gaan oplossen.

Ook heel benieuwd ben ik naar hun reden om te gaan voor een bit-for-bit identieke binary als uitkomst, in plaats van enkel een functioneel identiek spel. Want hun streven is dus echt om hun eigen code zo te maken dat deze na compilatie en linken (haha) exact uitkomt op dezelfde nullen en enen als het origineel van Nintendo. Dat voelt voor mij als een moeilijke manier om een kopie van die nullen en enen te maken, en dat is inbreuk. Maar het zal wel een hoger artistiek doel dienen?

Arnoud

Eh nee, F12 indrukken bij een website is geen criminele handeling

| AE 12980 | Ondernemingsvrijheid, Security | 24 reacties

(Geen zorgen, nog een keer F12 en je scherm is weer normaal.) Het ziet er misschien heel imponerend uit, maar dit is gewoon het onderwaterscherm waarmee je onder meer de broncode van de huidige site in beeld krijgt. Dan kun je soms net iets meer informatie zien. Zoals recent journalist Josh Renaud uit Missouri ontdekte: de social security nummers van tienduizend docenten uit de staat. Mag dat? Nee, dat is crimineel, aldus gouverneur Mike Parson. Moehaha kom nou, aldus de hele wereld.

Het bronbericht geeft een 451 error (lawyer says no) vanuit Europa, maar het betrof een zoekfunctie voor docenten, waarbij de zoekresultaten werden meegegeven aan de resultaatpagina inclusief hun social security number, zeg maar hun bsn. Bij het programmeren van de site bedacht iemand toen dat dat niet echt handig is om te publiceren, dus werd het verborgen in de uitvoer. Maar het stond dus nog gewoon in de broncode, en die krijg je te zien met een druk op de knop.

Een datalek, zouden wij in Europa zeggen. Een beperkte security. Want als die data niet zichtbaar hoeft te zijn in resultaten, dan hoeft deze ook niet mee naar de webpagina om daar vervolgens buiten beeld te blijven. Dan houd je dat gewoon lekker op de server. Afijn, de melding werd opgepakt, de fout werd hersteld, daarna pas publiceerde men, weinig bijzonders.

Bijzonder was wel de reactie van de gouverneur, want in de vertaalslag omhoog naar het politieke ging iets mis. “Onze server stuurde bsn’s mee en dat kon iedereen zien die op F12 drukt” werd namelijk dit:

Through a multi-step process, an individual took the records of at least three educators, decoded the HTML source code, and viewed the SSN of those specific educators.
Die meer dan drie klopt (het waren er 100.000), de rest is laten we zeggen een ietwat complexe voorstelling van zaken. Die multi-step is namelijk dat je een zoekopdracht doet, de resultaatpagina krijgt, F12 drukt en in de broncode scrollt tot je “ssn” ziet. “Decoding the HTML source code” is, eh, zeggen dat je langs <tags> kunt lezen?

En dan gaat men nog verder:

A hacker is someone who gains unauthorized access to information or content. This individual did not have permission to do what they did. They had no authorization to convert and decode the code.
Het punt is alleen dus dat de code in kwestie is wat er naar je computer wordt gestuurd, en dat deze voor mensen leesbaar is. Of nou ja, leesbaar:
<div class=”text”><h1><a reF=”https://blog.iusmentis.com”>Internetrecht door Arnoud Engelfriet</a></h1> <p>Arnoud Engelfriet is ICT-jurist, gespecialiseerd in internetrecht.Hij werkt als partner bij juridisch adviesbureau <a Href=”http://ictrecht.nl” rel=”external” target=”_blank”>ICTRecht</a>. Zijn site <a hRef=”http://www.iusmentis.com/”>Ius mentis</a> heeft meer dan 350 artikelen over internetrecht.</p></div>
Ik wil niet zeggen dat dit metéén net zo helder is als een gemiddeld juridisch contract, maar om dit nu een “code” te noemen die je moet “ontcijferen” gaat wel erg ver. Maar hoe dan ook is het absurd om te zeggen dat hier sprake is van “toegang zonder toestemming”, dit is gewoon wat de server je geeft en het is juist je browser die er wat moois van maakt.

En natuurlijk, voor computercriminaliteit is niet perse nodig dat je een moeilijke technische truc uithaalt. Zodra je ergens bent waarvan je weet dat je er niet mag zijn, ben je eigenlijk al in overtreding. Vandaar die discussie over URL-manipulatie, het aanpassen van een URL om te gokken dat je elders nog informatie kunt vinden waarvan je zo snel niet de navigatie erheen kunt bepalen. Maar hoe je het ook bekijkt, zelf een URL aanpassen om te raden wat elders staat, is complexer dan bekijken welke HTML broncode een site naar je stuurde.

Arnoud

 

 

Ga er maar aanstaan als deskundige: moet die broncode opnieuw geschreven?

| AE 12312 | Ondernemingsvrijheid | 40 reacties

Deskundige vereist voor beoordeling gebrekkige broncode, meldde ITenRecht onlangs. In een automatiseringsgeschil tussen softwareontwikkelaar Capgemini en haar klant Equihold (die de software wilde inzetten bij onder meer FC Barcelona) ontstond discussie over de kwaliteit van de tot dan toe gemaakte broncode. Een mooi voorbeeld van hoe de rechtspraak omgaat met inhoudelijk diepgaande issues. Ik las laatst weer dat rechters moeten leren programmeren omdat ze anders dit soort zaken niet kunnen doen. Onzin, wat mij betreft. Daar heb je deskundigen voor. Maar bij deze zaak denk ik dan wel, blij dat ik die deskundige niet ben.

In 2002 ontwikkelde Equihold een sportapplicatie met de naam 1-2 Focus. Deze applicatie was geschreven in de programmeeromgeving en programmeertaal VB6. In 2004 besloot men deze om te werken naar Microsoft .NET, waarna men in 2005 een raamovereenkomst sloot met Capgemini om het werk te laten doen. Ik zal u de verdere tijdlijn besparen, maar in 2010 eindigde het feest met een brief aan Capgemini met als titel “1-2Focus; developed by Capgemini A Showcase of Bad Practices”.

Wat was er nu precies aan de hand met die broncode? Helaas is dat in het arrest niet in detail te achterhalen. We moeten het doen met uitspraken als

Volgens [B] , een voormalig werknemer van Equihold, heeft de broncode niet de gewenste laagstructuur, bestaat deze uit onnodig veel regels en is deze onsamenhangend. Zijn conclusie is dat de broncode van zo bedroevende kwaliteit is dat het volledig herschrijven daarvan onvermijdelijk is. SQMI is volgens [appellant] een gerenommeerde en onafhankelijke partij die een onderzoeksmethode gebruikt die is ontwikkeld door het Institute for Software Quality (IfSQ). Het rapport SQMI concludeert dat de broncode een hoog aantal ‘defect indicators’ heeft, dat de onderhoudskosten van de software onnodig hoog zijn en dat de software ongeschikt is als platform voor verdere ontwikkeling. Graham Bolton, oprichter van IfSQ en directeur van SQMI, (verder Bolton) voegt daar in een schriftelijke verklaring aan toe dat het verbeteren van de geconstateerde gebreken meerdere jaren in beslag zou nemen, en zelfs meer tijd zou kosten dan het geheel opnieuw schrijven van de applicatie.

Capgemini kon daar echter een ander rapport tegenover stellen dat juist aantoont dat de onderhoudbaarheid marktconform is.

Dan krijg je dus de situatie dat partijen elkaar tegenspreken, en dat je als rechter dan moet vaststellen wat er nu waar is. In een geval als dit is dat erg lastig, allereerst natuurlijk omdat broncode op kwaliteit toetsen sowieso ingewikkeld is (de een z’n ***var is de ander z’n nachtmerrie) maar ten tweede omdat dit om zo’n grote codebase gaat dat er een hele partij werk in gaat zitten. Oh ja, en omdat er natuurlijk niet echt objectieve standaarden zijn om codekwaliteit vast te stellen.

Een belangrijke factor in het geschil was de onderhoudbaarheid: kun je op lange termijn hiermee door, ook (denk ik) met een andere onderhoudspartij dan Capgemini zelf. Bij grote applicaties is langdurig gebruik te verwachten, dan heb je andere verwachtingen qua onderhoud en aanpasbaarheid voor de toekomst dan bij een snelle app voor een event begin volgend jaar.

Dus, ik gooi hem eens in de groep, voor al die IT-ers die denken dat rechters meer verstand van software nodig hebben: hoe zouden jullie bij deze berg aan code objectief vaststellen of de kwaliteit voldoet aan de contractuele eis van ‘high quality software’?

Arnoud

Wat mag ik met snippets van Stack Overflow?

| AE 11706 | Intellectuele rechten | 17 reacties

Een lezer vroeg me: Zoals vele ontwikkelaars neus ik vaak op Stack Overflow naar oplossingen voor mijn programmeerproblemen. Ik zie dan vaak broncode die de oplossing implementeert, maar ik weet dat ik die niet zomaar mag copypasten in verband met licentieproblemen. Maar wat mag ik dan wel? Stackoverflow is de bekendste site voor programmeurs om… Lees verder

Moeten we echt elk jaar de copyrightvermelding in onze broncode updaten?

| AE 9248 | Intellectuele rechten | 23 reacties

Een lezer vroeg me: Alle broncodes binnen ons bedrijf hebben een copyrightvermelding, als volgt: Copyright © 2016 $NAAM THIS SOURCE CODE IS THE UNPUBLISHED AND CONFIDENTIAL PROPERTY OF $NAAM< AND MAY NOT BE COPIED, MODIFIED OR DISTRIBUTED WITHOUT PRIOR WRITTEN AUTHORIZATION. (Iets ingekort in verband met leesbaarheid.) Nu moet ik al die notices aanpassen want... Lees verder

Mag je software reverse engineeren om fouten te vinden?

| AE 8023 | Intellectuele rechten, Security | 31 reacties

Een lezer vroeg me: Is reverse engineering legaal als het doel is om beveiligingslekken te vinden? Jij zei ooit van wel, maar in de wet staat volgens mij dat je alleen mag reverse engineeren om compatibiliteit te realiseren. Oef, dat is lang geleden, maar inderdaad: Alleen die vormen waarmee je compatibiliteit met zelfgeschreven software wilt… Lees verder

Schendt HTC de GPL door broncode vertraagd te publiceren?

| AE 2269 | Intellectuele rechten | 29 reacties

Een lezer wees me (dank!) op een bericht bij Freedom to Tinker waar werd gesignaleerd dat de Android-gebaseerde HTC smartphone Linux draait, maar de broncode maar moeizaam beschikbaar komt. Linux is open source (GPL versie 2) en de broncode moet dus meegeleverd worden (of er moet een schriftelijk aanbod bij zitten waar staat waar je… Lees verder