Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 130 reacties

De Europese Onderzoeksraad heeft de VU een subsidie van 1,3 miljoen euro voor een onderzoek naar reverse engineering gegeven. Het Rosetta-project zou volgens de onderzoeksleider een grote impact kunnen hebben.

Projectleider Herbert Bos, hoofddocent informatica aan de Vrije Universiteit in Amsterdam, wil met zijn team van zes onderzoekers nieuwe reverse-engineering-mechanismen ontwikkelen om gecompileerde code van closed source-programmatuur terug te vertalen naar leesbare broncode. Veel commerciële softwarebedrijven maken juist gebruik van de ontoegankelijkheid van hun gecompileerde binaries. Dit model heeft echter als nadeel dat er geen wijzigingen in de code aangebracht kunnen worden, omdat de broncode ontbreekt.

Volgens Bos zal zijn onderzoeksgroep niet alleen traditionele methoden van reverse engineering inzetten, zoals het gebruik van disassemblers, maar zich ook richten op het vaststellen van de datastructuren die de oorspronkelijke programmeurs voor ogen zouden hebben gehad en de bijbehorende code. Daarbij wordt met name gekeken naar de manier waarop data wordt opgeslagen in het werkgeheugen, bijvoorbeeld in de vorm van een tabel of een boomstructuur.

Deze methode, die is geïnspireerd op de beroemde Steen van Rosetta, wordt in eerste instantie nog getest op opensource-applicaties. "Zo kunnen we het succes van de methode nagaan, we hebben immers de broncode", aldus Bos tegenover Tweakers.net. In eerste instantie wordt onder andere de opensource-processor-emulator Qemu gebruikt. Een tweede en aanzienlijk moeilijkere stap in het project is het analyseren van de code van closedsource-applicaties of -besturingssystemen en het ontwikkelen van eigen tools.

Bos stelt dat de mogelijke uitkomsten van het onderzoek, waarvoor vijf jaar is ingeruimd, verstrekkende gevolgen kunnen hebben. Niet alleen zouden bestaande binaire applicaties van softwarebedrijven met een nieuwe manier van reverse engineering mogelijk makkelijker ontleed kunnen worden, waardoor hun business model onder druk kan komen te staan, ook biedt het kansen voor crackers en hackers. Daarnaast zou het echter ook makkelijker worden om oudere software alsnog te patchen en om malware beter te kunnen analyseren.

De jury van de Europese Onderzoeksraad noemde het project van Bos bij de toekenning van de prestigieuze beurs 'uitdagend, ambitieus, en risicovol'. Bos weet nog niet of hij de reverse engineering-tools die het team zal ontwikkelen vrijgeeft. "Al ben ik daar van nature wel toe geneigd." Verder zou Bos hebben bekeken of het juridisch mag om closed source binaries voor onderzoeksdoeleinden te onderzoeken en te manipuleren. "Ik ben geen juridisch expert, maar ik verwacht daar geen problemen mee."

Moderatie-faq Wijzig weergave

Reacties (130)

Wat heb je eigenlijk aan dit project?
Als je van closed source software de broncode weet te achterhalen dan kan je daar toch niets mee omdat je het juridisch gezien niet mag bewerken (of in ieder geval de bewerkte versie niet mag verspreiden)?
Je krijgt auteursrecht op de reverse engineered code. De reverse engineer heeft immers een nieuw creatief werk gemaakt. Dan kan de reverse engineer zelf bepalen wat de licentie van het nieuwe creatieve werk wordt.

Als ik een boek vertaal, krijg ik ook gewoon auteursrecht over de vertaling (het nieuwe creatieve werk).

[Reactie gewijzigd door Ruudjah op 11 augustus 2010 08:36]

Bullshit.

Het is verboden om code die reversed engineerd is te publiceren. Hier zijn wel wat uitzonderingen op (zoals voor educatieve doeleinden), maar elke andere rede is niet toegestaan.

Sterker nog ik denk dat, zoals Upquark zegt, ze in problemen kunnen komen met de huidige auteurswet. Zie:
http://www.security.nl/ar...everse_engineeren%3F.html

Ze reverse engineeren echt niet om interoperabiliteit van onafhankelijk gemaakte software tot stand te brengen. Sterker nog ze doen het om die software te wijzigen en dat is gewoon illegaal.
Jouw link gaat niet over het herpubliceren van reverse engineered code. Alleen of reverse engineering an sich wel of niet mag.

Citaat uit het artikel:
Het reverse engineeren van software is onder omstandigheden legaal. Software is beschermd door het auteursrecht, en het bewerken (wijzigen, aanpassen en uitbreiden daarvan) wordt gezien als een vorm van verveelvoudigen. Je hebt daar normaal dus toestemming voor nodig van de rechthebbende.
Je maakt een nieuw creatief werk. DŠt publiceer je, niet het werk of derivaten van de originele code.

Heb je een link waarin uitgelegd wordt of je reverse engineered code mag herpubliceren?
Auteurswet
Artikel 45j

Tenzij anders is overeengekomen, wordt niet als inbreuk op het auteursrecht op een werk als bedoeld in artikel 10, eerste lid, onder 12į, beschouwd de verveelvoudiging, vervaardigd door de rechtmatige verkrijger van een exemplaar van eerder genoemd werk, die noodzakelijk is voor het met dat werk beoogde gebruik. De verveelvoudiging, als bedoeld in de eerste zin, die geschiedt in het kader van het laden, het in beeld brengen of het verbeteren van fouten, kan niet bij overeenkomst worden verboden.

Wil dit niet zeggen dat het wel mag indien je fouten probeerd te verbeteren?
Dat is wat ik ook al dacht.

Ik meen mij te herinneren dat het simpelweg verboden is om software te gaan reverse engineeren. Ik dacht ooit geleerd te hebben dat het alleen mocht indien er een bedrijf ( bv. Microsoft ) niet bereid is om een deel van zijn code af te staan aan een ander bedrijf die hier een functionaliteit voor wilt ontwikkelen.
In dat geval mag het tweede bedrijf gebruik maken van reverse engineering om hun compatibiliteit te ontwikkelen.

Volgens mij gaan ze hier echt last mee krijgen. Ik snap zelfs niet dat de E.U. dit project wilt subsidiŽren ( steunen ).
Als dat inderdaad zo is, dan zijn de gevolgen van het slagen van dit project nog niet te overzien!
Ik begrijp waar je redenering vandaan komt, maar als ik door aanpassingen te verrichten op andermans werk, met als enige doel het achterhalen van de oorspronkelijke bron, het auteursrecht krijg op die code, dan is het hek van de dam...

Zou dan niet ook open-source (dat onder een licentie valt dat het altijd open moet zijn) en een klap waardeloos zijn? Ik compile zelf open source naar een binary, reverse engineer de code terug naar iets wat lijkt op de oorspronkelijke code, en ik ben ineens licentiehouder! Weg GNU, weg rechten...
Je bent dan licentiehouder over het nieuw gecreŽerde werk. De uitgever van de GNU/GPL code behoudt nog gewoon auteursrecht over de originele broncode.
maar dat is dan feitelijk waardeloos want iemand anders heeft een (nagenoeg gelijke) kopie van jou broncode..

ik mag toch hopen dat dit in geen enkel geval juridisch geldig wordt..
Dat is dus ook niet waar. Je kunt alleen auteursrecht krijgen op een 'oorspronkelijk' werk, niet op een 'afgeleid' werk. Je kunt dus niet zomaar het nieuwste boek van Harry Potter pakken en overal 'Harry Potter' veranderen in 'Jan-Peter Balkenende' en dan claimen dat je een nieuw werk gemaakt hebt.

Wanneer iets precies een oorspronkelijk werk is en wanneer een afgeleid werk is nogal vaag gedefinieerd... er zal wellicht een rechter aan te pas moeten komen om dat te definieren. Maar ik acht de kans dat je copyright kunt krijgen op machinaal reverse-engineered code bijzonder klein.
JK Rowling heeft het zelfs klaargekregen om een Russisch boek dat ruwweg de verhaallijn van Harry Potter volgde maar verder wel door iemand anders geschreven was verboden te krijgen. Dus de term "afgeleid werk" wordt erg ruim uitgelegd.
Dat is wel een beetje heel kort door de bocht. Wel creatief bedacht, maar: NEE!
Als dat voor een rechtbank komt zal je in geen geval in het gelijk worden gesteld!
Je moet hierbij ook niet vergeten dat er ook vaak gepatenteerde zaken in verwerkt zitten en daar krijg jij, ook door reversed engineering, never nooit de rechten op.
Of je moet budgetten tot je beschikbaarheid hebben die de betrokken patenthouder over de streep zullen trekken om er afstand van te doen of dat je die mag gebruiken.
In Europa hebben we (gelukkig) nog geen softwarepatenten. In de VS en australie zou dit wel een argument zijn.
Ik denk dat het hier veel simpeler is - het origineel is auteursrechtelijk beschermd, het afgeleide product (reverse engineered or otherwise) poogt om het origineel zo dicht mogelijk te benaderen. Goed kans dat ze dat niet als een nieuw origineel werk zien, maar als een gevalletje namaak, en dus in overtreding van het auteursrecht.

Als ik een boek koop, dat vervolgens herschrijf door karakternamen te veranderen en mijn eigen bewoordingen te gebruiken - maar de verhaallijn ongewijzigd laat - dan zal dat echt niet als een nieuw werk gezien worden, maar als namaak van het origineel. Bovendien staat de deur dan open voor de auteur van het origineel om me voor de rechtbank te slepen wegens plagiaat.
Als ik een boek koop, dat vervolgens herschrijf door karakternamen te veranderen en mijn eigen bewoordingen te gebruiken - maar de verhaallijn ongewijzigd laat - dan zal dat echt niet als een nieuw werk gezien worden, maar als namaak van het origineel.
Dat is nog maar de vraag. Lees de Donald Duck maar eens, dat staat vol van dergelijke voorbeelden. En de Donald Duck is bij mijn weten nog niet voor dergelijke zaken veroordeeld. Maar je kan ook serieuzere voorbeelden nemen. Wat dacht je van een alternatief eind van een verhaal? Of het opnieuw beschrijven van een idee?

Allemaal voorbeelden van het remixen/baseren op huidig werk met als resultaat een nieuw creatief werk.
De Donald Duck lijkt me een ongelukkig voorbeeld. Als er bestaande verhaallijnen worden gebruikt worden die zo creatief bewerkt dat je waarschijnlijk van een nieuw werk kunt spreken. Artiesten die in de 'renaissance' oude werken opnieuw gingen maken waren ook creatief bezig.
Daarbij zegt het heel weinig dat de Donald Duck nooi veroordeeld is als het nooit op een rechtzaak is aangekomen.

Als je een bestaand programma een tijdje gebruikt en dan gaat namaken is dat in Nederland toegestaan (geen softwarepatenten). Als je dat geautomatiseerd doet is er inderdaad slechts sprake van een afgeleid werk, hetgeen niet mag. Vergelijk de discussie een tijd terug over ondertitels. Deze werden ook als afgeleid werk gezien, waarbij het copyright bij de oorspronkelijke filauteurs lag.
"Het vertalen van een complete speelfilm valt onder een 'bewerking' van een origineel en dat is inbreuk op het auteursrecht. Het betekent ook schade voor de rechtmatige eigenaren van dat werk."
De lijn tussen geautomatiseerd en handmatig is natuurlijk heel erg wazig. Wat nou als ik de code uitbreid? Of als ik een custom decompile script toevoeg aan de decompile software? Of als ik een datastructuur wijzig in een vergelijkende, bijvoorbeeld een uint in een int? Of als ik code toevoeg of weghaal? Of alleen gedeeeltes reverse engineer met geautomatiseerde tools?

Overigens is ondertitels.nl niet gesloten door middel van een civiele procedure, maar door Tim Kuik die het OM heeft gebeld. Ondertitels als precedent of voorbeeld gebruiken is hier dus niet van toepassing, er is geen rechter aan te pas gekomen die de wet heeft geÔnterpreteerd.
Als je toestemming hebt om het te vertalen ja...

In de jaren tachtig werkte dit in bepaalde landen inderdaad zo (b.v. Italie). Daar kon je dan bij de tijdschriften handel tapes kopen vol msx/commodore 64 spellen waar alleen de titel was veranderd. Die wijziging was toen voldoende om de copyight te doen vervallen.

Inmiddels is dat al lang niet meer zo en sowieso lijkt me dat de DMCA wetgeving hier ook lijnrecht tegenover staat.
DMCA is een wet in de VS, niet geldig in Nederland.
Als jij een vertaling doet, heb jij niet het auteursrecht over die vertaling. blijft toegekend aan de oorspronkelijk autoeur. sterker verteld, jij bent in overtreding; zo is recentelijk gebleken waarbij een frans menneke harry-potter heeft vertaald in 't frans.
Dat is de Franse auteurswet.
Ja de auteurswetten zijn per land geregeld. Echter zijn hierover ook internationale afspraken gemaakt en in de praktijk zijn ze overal grofweg hetzelfde.
niet helemaal, er liggen nog steeds rechten bij de originele auteur. omdat hij de producent van het werk is. jij alleen maar van de vertaling. ook is het niet toegestaan een boek te vertalen en op de markt te brengen zonder toestemming van de uitgever.
Beetje kort door de bocht wat dat vertalen betreft. Je hebt geen auteursrecht op het oorspronkelijk en mag het dus ook niet zomaar vertalen, behalve als je toestemming hebt van de auteur...
Als ik nou eens een mp3 reverse-engineer en er een ogg van maak, ben ik dan de auteur van het anders opgebouwde maar gelijk klinkende muziekstuk?
Je creŽert geen nieuw creatief werk.
Uh, zo simpel is het niet, als jij een boek vertaalt dan kun jij wel het auteursrecht hebben over de vertaling, maar zonder toestemming van de rechthebbende van het orgineel mag jij die vertaling niet publiceren, en komt jouw vertaling toch in omloop dan ben kun jij daar dus op aangesproken (financieel) worden..
Overigens is een reverse engineered software project zoals deze al juridisch een probleem, omdat dit dus wel rechtstreeks gebasseerd is op het orgineel. Dit valt overigens ook niet onder de 'cleanroom' reverse engineering, en daarmee in veel landen is het product wat voortvloeit uit deze RE niet legaal.
In dit geval is het dus in sommige gevallen verboden om te reverse engineren. Dus je hebt geen toestemming om de vertaling te maken. De originele auteur van de binary zal dus eerst moeten aantonen dat je het via reverse engineering hebt gecreŽerd. Dat gaat heel erg lastig, zo niet onmogelijk worden. Zeker als je de reverse engineered code nabewerkt. En over die code heb je gewoon als auteur het auteursrecht.
Het gaat nu alleen om het maken van theoretische modellen en tools, niet om specifieke gevallen waarin die gebruikt worden. Men gebruikt ze zelf voor open source software waarbij dit gewoon mag. Voor wat iemand anders met die tools eventueel doet is de VU niet aansprakelijk, net zo min als Blokker aansprakelijk is als ik daar een keukenmes koop en er iemand mee neersteek.
Onzin. Je mag die code niet aanpassen. Niet in tekstvorm,noch in binaire vorm.

Zoiets houdt nooit stand voor een rechtbank.
Je past geen code aan. Je creŽert nieuwe code.
Is het niet zo dat reverse engineren strafbaar kan zijn, of in ieder geval tegen licentie afspraken ingaat ?
dit gaat vooral om oudere programma's waar de broncode gewoon van verloren is maar die wel in se goede programmas zijn te kunnen reverse engineeren naar broncode om het programma dan te kunnen uitbreiden of patchen.
Bos weet nog niet of hij de reverse engineering-tools die het team zal ontwikkelen vrijgeeft.
Dus we krijgen over 5 jaar te horen dat reverse engineeren makkelijker kan, maar de hulpmiddelen houden ze lekker voor zichzelf.
Terwijl de belastingbetaler er inrechstreeks voor betaald...
Als de belastingbetaler niet voor zou betalen, zou een hoop fundamenteel onderzoek ook gewoon niet gebeuren. Je kunt je heel sterk afvragen of we vandaag de dag televisie hadden gehad zonder onderzoek gefinancierd door belastinggeld. En in feite geldt dat ook voor het internet, ducttape en de teflonpan (= leger/nasa researsch, en dat wordt dus ook gewoon vanuit belastinggeld betaald).

Daarbij is het vrijgegeven van software niet het belangrijkste waar wetenschappers op beoordeeld worden, dat zijn hun publicaties. Als ze niks publiceren over wat ze met die 1,3 miljoen euro hebben gedaan, is de carriŤre van die wetenschapper waarschijnlijk wel min of meer voorbij.

De ontwikkelde technieken zullen dus waarschijnlijk gewoon vrijgegeven worden, de broncode van de technieken waarschijnlijk niet, maar in principe zou een beetje software ontwikkelaar aan de hand van de publicaties dus zelf de technieken moeten kunnen implementeren.
Maar dit is geen fundamenteel onderzoek!

Dit is gewoon geld verspilling. Tenzij dit gebruikt gaat worden om bv MS of Apple tot openheid te dwingen. Immers kunnen ze Windows dan ook vrijgeven zonder ooit van MS brondcode gekregen te hebben.

Voor oude software waar de broncode van verloren is gegaan is gewoon onzin, als het belangrijke software is dan gaat die echt niet verloren. En als hij geld op kan leveren wordt het ook zo herschreven.
Opdoen van kennis is geen geldverspilling. Dat jij of ik nu niet meteen zien hoe er geld mee te verdienen is maakt het niet waardeloos.

Zo zei bij Intel, die toch niet vies van geld verdienen is, de CTO eens dat hij zich zorgen maakte over het percentage van hun onderzoek dat werkelijk in producten terecht komt. Met 55% vond hij dat veel te hoog, want het betekent dat hun onderzoekers niet voor de wilde ideeŽn gaan, maar op safe spelen, en daardoor maar kleine stapjes maken. Beter af en toe een misser en af en toe een enorme sprong.
/agree

Mooi voorbeeld ook, je hebt het niet over de minst invloedrijke persoon der aarde!
Ze willen ook automatische analyse van datastructuren gaan doen. Dit zou bijvoorbeeld ook kunnen betekenen dat ze willen kijken wat Word met zijn geheugen doet om een goede beschrijving te maken voor het doc formaat. Of bijvoorbeeld de automatische analyse van een hardware driver voor een heel specifiek soort hardware, die momenteel alleen voor Windows 2000 beschikbaar is.

Daarbij willen ze in feite het proces van de compiler omdraaien en in de software wetenschap kom je toch echt niet op een veel fundamenteler punt dan de compilers. Als je met allerlei soorten machinetaal om zult willen gaan, zul je ook een beter begrip moeten kweken van de overeenkomsten tussen verschillende compilers, waar nog wel eens leuke inzichten uit zouden kunnen voortkomen. Ik ben het er dus niet persť mee eens dat dit (evt. gedeeltelijk) geen fundamenteel onderzoek zou kunnen zijn.

Je zou zelfs kunnen denken aan het makkelijker benaderen van oude software in een omgeving als .NET. Als een oud stuk software meer processen heeft die met elkaar communiceren via een stuk shared geheugen in een bepaalde structuur, dan kan je net een goede analyse van de datastructuur en de processen wellicht bepalen hoe je vanuit je C# programmatje ook met deze processen mee kunt communiceren, zonder het hele pakket opnieuw te schrijven.

[Reactie gewijzigd door sirdupre op 11 augustus 2010 10:59]

Het zou het ook makkelijker maken om uit video afspeelprogramma's DRM keys af te leiden, en WiFi drivers te ontwikkelen voor bepaalde chipsets waarmee zaken in te stellen zijn die overheden niet zo graag zien zoals meer zendvermogen. Zeker nuttige toepassingen.
Is het risico niet veel groter dan de mogelijk nuttige effect van dit onderzoek? Wanneer deze techniek straks in de verkeerde handen valt dan zijn de mogelijkheden voor criminelen ook oneindig.
Ik vind het spelen met vuur. Niet doen en zeker niet met zo'n luttele subsidie, want dat geld heb je straks al minstens nodig om de uitkomsten te beveiligen!
@millenarian
Welk risico? Het risico dat security by obscurity eindelijk eens massaal door de mand valt? Als je closed source gebruikt als beveiligingsmethode ben je toch al niet goed bezig. Misschien worden softwaremakers zo eindelijk eens gedwongen ťchte beveiligingen te maken ipv er maar op te vertrouwen dat niemand weet hoe hun software werkt.
Door alle software makkelijk te laten reverse engineeren komt de macht terug waar het hoort: bij de bevolking, ipv bij een paar software- en mediabedrijven die op totale controle uit zijn.
Ik vind jouw reactie dan ook aardig bizar, maar ik denk dat het jarenlange windows-monopolie, dat vol zit met closed source, drm en security by obscurity, niet veel goeds heeft gedaan met de kijk op security van een groot deel van de bevolking.
@Kozue:
Closed source staat niet gelijk aan security by obscurity. Als die straks tool inderdaad straks alle broncode en structuren zichtbaar maakt, dan is dat de doodsteek voor de ICT.

Er zijn dan slechts twee uitkomsten:
1. Nederland krijgt ook een DMCA wet welke reverse enginering strafbaar maakt
2. Software patenten zijn nodig alle data structuren te gaan beschermen.

Als je kijkt naar de Amerikaanse beurzen, dan zijn het daar vooral de technologie fondsen welke de economie trekken.

Echter snap je natuurlijk vast wel dat de kosten om reverse enginering lastiger te maken (indirect) bij de burger worden neergelegd. Software zal dus alleen maar duurder worden.

Speel je vaak games? Hoeveel games denk je dat er nog gaan uitkomen als een bedrijf weet dat de concurrent binnen enkele dagen aan de broncode en data structuren kan komen? Dat betekend dat je binnen enkele weken meerdere klonen zal krijgen.

Hoe kom je trouwens aan de opvatting dat de macht bij de burger ligt? Zowel in een communistische als kapitalistische wereld ligt de macht niet bij de burger.
Speel je vaak games? Hoeveel games denk je dat er nog gaan uitkomen als een bedrijf weet dat de concurrent binnen enkele dagen aan de broncode en data structuren kan komen? Dat betekend dat je binnen enkele weken meerdere klonen zal krijgen.
Ik denk dat je wat iver het hoofd ziet. Stel dat deze tools nu (ongeveer bij de lancering van StarCraft 2 om maar een populair voorbeeld te nemen) al beschikbaar waren. Wat verandert er dan?
  • De beveiliging wordt er toch wel uitgesloopt, ook vandaag de dag al, dus daar verandert niks.
  • Mods maken kan in veel (grote) spellen via ingebouwde methoden. Ik geloof er niks van dat reversen, aanpassen en opnieuw compilen makkelijker is dan ingebouwde mod-methoden te gebruiken, dus ook daar verandert niks.
  • Mods maken van spellen die dat van zichzelf niet ondersteunen dan? Tja, dat wordt in principe makkelijker, maar gaat het ook gebeuren? Lijkt me onwaarschijnlijk; voor een hobby-projectje is het veel te complex, dus je hebt bijna geen andere optie dan om het op commercieel niveau te doen. Maar dan loop je weer tegen het probleem aan dat je jouw versie niet in de winkel kunt leggen want dan sta je binnen de kortste keren voor de rechter. Blijft over het wereldvreemde genie dat het in zijn eentje klaart of een kapot business model: veel geld erin pompen dat je nooit terug kunt verdienen. Het zou kunnen gebeuren, maar niet op een schaal die groot genoeg is om een noemenswaardig probleem te worden.
Ter illustratie: jaren geleden heeft ontwikkelaar Volition de volledige source van ťťn van haar spellen, FreeSpace 2, vrijgegeven als open source. Hier is sindsdien (in alle openheid, het is immers volkomen legaal) door een groep enthousiastelingen aan verdergewerkt in het "Source Code Project". Ik kan me niet voorstellen dat het SCP ooit van de grond was gekomen als het "verborgen" had moeten gebeuren (omdat de code via reverse engineering, illegaal, verkregen zou zijn). Bovendien, jaren dev-tijd kost normaal klauwen met geld. SCP wordt gemaakt door vrijwilligers, maar hoe ga je er geld aan verdienen als je ontwikkelaars hun salaris moet betalen?
Overigens, het spel zelf dateert uit 1999; het lijkt me een redelijke aanname dat de code van games in tien jaar tijd nog complexer en groter is geworden. Wat aanpassen een nog ingewikkelder (en dus duurder) verhaal maakt. Ook dingen als Word en Windows vallen in die categorie; zelfs met de source (die altijd minder goed zal zijn dan het origineel; commentaar en (de meeste) variabelennamen ben je hoe dan ook kwijt) valt er gewoon geen geld te verdienen met gemod.
Eens met sirdupre.

En het is dus ook zeker geen geldverspilling. Dit hele proces van omgekeerd compileren wordt hopelijk in hun publicaties geformaliseerd. Dit betekent dat er een (wiskundig) fundament wordt gelegd waar weer allemaal toepassingen voor kunnen worden bedacht.

Dit maakt het ook platform-onafhankelijk, zodat iedereen het kan implementeren. Er zijn zoveel fundamentele onderzoeken op welk vakgebied dan ook waar uiteindelijk uit blijkt (maar dat weet je nooit van tevoren) dath et heel belangrijk is geweest.

Dat is nou eenmaal een eigenschap van fundamenteel onderzoek. De directe toepassing ligt niet meteen voor de hand, maar het bouwt wel een fundament op.
"Voor oude software waar de broncode van verloren is gegaan is gewoon onzin, als het belangrijke software is dan gaat die echt niet verloren. ". Ik ken helaas voldoende voorbeelden waar dit binnen bedrijven mis is gegaan (inclusief bedrijven met CMM level bla certificatie).
Dit is gewoon geld verspilling
461,5 miljoen mensen in de EU (2006). Ga jij dat missen?
Bovendien, als deze kennis er straks is zal deze vast ook voor andere doeleinden gebruikt kunnen worden.

[Reactie gewijzigd door BasZer op 11 augustus 2010 12:00]

Voor oude software waar de broncode van verloren is gegaan is gewoon onzin, als het belangrijke software is dan gaat die echt niet verloren.
Je was de <sarcasme> tags vergeten, toch...? :X
Welkom in de echte wereld; er is een heleboel source verloren gegaan. Ja, dat is ontzettend knullig maar het is nou eenmaal niet anders.
Hoe kan dat gebeuren? Misschien iemand die iets te enthousiast "ouwe rommel" op aan het ruimen was: "oh dit staat toch in de backup / in het archief, dat kan wel weg", alleen stond het daar niet. Of bij de overname van het ene bedrijf door het andere gaat er iets mis. Misschien bestaat de source zelfs nog wel, alleen weet niemand meer waar.
Bovendien, zelfs als de source nog beschikbaar is, wie zegt dat er nog programmeurs zijn die de taal waarin het geschreven is voldoende beheersen om aanpassingen te kunnen maken? Of nog erger, bestaat de compiler nog wel? (Ja, dit bedoel ik serieus; ik heb ooit het advies gekregen om Cobol te leren, er schijnt tegenwoordig een erg goede boterham te zitten in het maintainen van prehistorische Cobol code die nog steeds gebruikt wordt.)
En als hij geld op kan leveren wordt het ook zo herschreven.
Tuurlijk, want software schrijven is heel goedkoop...!? Zeker als het iets anders moet vervangen en dus (in elk geval in de eerste versie) ook alle rare bugs netjes, op exact dezelfde manier als het origineel, moet reproduceren.
1. Het woord "inrechstreeks" komt niet voor in het woordenboek hoor...

2. Ik neem aan dat ze deze tools niet zomaar vrij gaan geven zonder eerst de eventuele juridische implicaties grondig door te nemen...
IDA pro, zowat de meest belangrijke reverse engineering tool momenteel verkrijgbaar is ook gereleased in de "onderwereld".

Daar zou ik niet zo veel schrik van hebben ;-)
Amen, IDA Pro (zie ook http://www.hex-rays.com/idapro/) is inderdaad verdomd krachtig, nog even los van de nog spectaculairdere plugins die beschikbaar zijn/waren.

Sowieso is veel commerciele 'closed source' beveiligd/versleuteld met DRM/packers, waardoor een analyse niet mogelijk is voordat de beveiliging 'gestript' is en het doelprogramma 'uitgepakt'; daar zit de grootste uitdaging van RE anno 2010; zeker als het doelprogramma in principe nog werkend moet blijven ook i.p.v. alleen 'mem-dumps ter analyse' ...

PS: Blij dat er tenminste nog fundamenteel RE onderzoek gedaan wordt; het is cruciaal dat die kennis niet verloren gaat; niet alleen om malware te analyseren maar ook om commerciele produkten te kunnen controleren op backdoors (denk ook 1984-achtige overheidsgrappen) of b.v. oude kerncentrale code aanpassen waar de source niet meer beschikbaar van is ...

[Reactie gewijzigd door SKiLLa op 11 augustus 2010 12:44]

@densoN: Selectief quoten geeft jou een hartstikke leuke klacht, maar er staat toch echt:
Bos weet nog niet of hij de reverse engineering-tools die het team zal ontwikkelen vrijgeeft. "Al ben ik daar van nature wel toe geneigd."
zoals hieronder en boven wordt gezegd: ze zullen kijken of het juridisch mogelijk is. Daarvoor lijkt het me handig om te zien of het Łberhaupt werkt.
over 5 jaar horen we dat de gemeente weer is overgestapt naar een win95 met office 97
al dan niet gepatcht om zo de kosten te drukken :P
Windows 95 draait niet op veel resente hardware
Windows 95 draait niet op veel resente hardware
En dat is het leuke als je inzicht krijgt op de werkelijke broncode, dan kun je zien waarom het niet draait. Op het moment is daar alles voor te bedenken zoals in een commerciele richting een tijdslimiet, processorcodes etc.
Ik snap ook wel dat er geen drivers zijn maar door reverse enginering zouden er ook Win95 drivers voor huidige hardware gemaakt kunnen worden als ook Linux drivers voor hardware waar de fabrikant niets over prijs wilt geven.
Windows 95 draait niet op veel recente hardware
Dan trek je het door een moderne compiler.
Dan trek je het door een moderne compiler.
En dan moet je alsnog zelf drivers voor SATA drives, USB, etc. gaan schrijven in het win95 model want die zijn er nu gewoon niet. En MS gaat ze vast niet voor je maken.
Moet geen probleem zijn. USB-drivers waren er al voor DOS, en SATA is volgens mij onafhankelijk van het OS. Als je er gewoon een FAT partitie opzet kun je er wel mee opstarten denk ik.
Die compiler hoeft trouwens alleen weten dat ie i386 32-bit binaries moet genereren, dus die ouwe Borland C-compiler moet al voldoende zijn.
En als je het al aan de praat krijgt draait je software er niet op.
Maar op zich vind ik het wel grappig dat sommigen zo serieus in gaan op zo'n flauwe opmerking die overduidelijk niet serieus bedoeld is :+
Overheden -met name hun politionele diensten- zullen de resultaten maar wat graag tegemoet zien. Met zulke technieken kan het voor justitie of de veiligheidsdiensten makkelijker worden om software te kraken waar men nu dat nog niet kan. Komt de opsproing van criminelen weer ten goede, plus dat de tweaker die nog steeds anoniem wil blijven dat steeds minder zal kunnen.
De tweaker die anoniem wil blijven kan dat beter niet via security through obscurity doen wat jij lijkt te propageren maar door wiskundig verantwoorde protocollen. Tor, Truecrypt en GnuPG zijn open source, als het goed is hangt de beveiliging niet van het open of closed karakter af.
Wat je WEL mag verspreiden is een programma of library die de originele software in het geheugen laadt en vervolgens de patches "live" aanbrengt.

Ik heb een freeware programmaatje Soundleech gemaakt die deze techniek gebruikt om runtime de DirectSound library aan te passen, zonder te hoeven beschikken over de broncode. In het programma zit een mini-disassembler die een beperkt setje instructies (een stuk of 5) kan decompileren, en een mini-assembler die alleen een "jmp" instructie kan invoegen.

Fraps, GameCam gebruiken dit ook.
Er is momenteel een groot tekort aan bruikbare reverse engineering tools. Veel software heeft ingebouwde beveiliging tegen disassemblers en debuggers. Dit is vaak een probleem wanneer een bedrijf of overheid software gebruikt dat is gemaakt door een bedrijf dat al lang failliet is, software niet meer ondersteunt, de broncode niet meer heeft of als de originele programmeurs er niet meer werken. Je ziet dit vrij vaak in embedded systemen of speciale hardware.

De enige optie om dan fouten in de software te verhelpen is dmv reverse engineering. Ik vind dit dan ook een goede ontwikkeling en hoop dat ze daadwerkelijk iets bereiken met al die miljoenen belastinggeld die er in worden gestoken en dat het niet alleen bij 'onderzoek' blijft.
Dit soort tools zijn heel handig om software te onderhouden die niet meer wordt ondersteund door de fabrikant/leverancier. Ik heb al een aantal maal geprobeerd een decompiler te gebruiken maar daar wordt je meestal niet heel veel wijzer van. De 'broncode' die daar uit komt is voor zover mijn ervaring strekt niet compileerbaar. Met een debugger (b.v. olydbg) kom je meestal verder.

Maar goed, de techniek staat niet stil. Wellicht dat ze met heuristische methodes code kunnen genereren die hetzelfde doet als de originele code. Als je de originele code in logische stukjes knipt en ieder stukje vervangt door broncode die exact dezelfde functie heeft, dan heb je in principe compileerbare broncode die na compilatie een programma oplevert dat hetzelfde doet als het origineel. De grootste kunst zal echter zijn om de broncode leesbaar te maken en te voorzien van zinnig commentaar.
"miljoenensubsidie"..."weet nog niet of hij de reverse engineering-tools die het team zal ontwikkelen vrijgeeft"

Publieke gelden gebruiken en dan niets daarvoor terug geven aan het publiek?
Grappig.
"miljoenensubsidie"..."weet nog niet of hij de reverse engineering-tools die het team zal ontwikkelen vrijgeeft"

Publieke gelden gebruiken en dan niets daarvoor terug geven aan het publiek?
Grappig.
Bij wetenschappelijk onderzoek worden normaalgezien papers geschreven waarin de belangrijkste bevindingen beschreven worden. Je kan dus zelf de software schrijven aan de hand van deze informatie.

De ontwikkelde software is vaak maar een bijproduct om de nieuwe methodes te testen en is vaak ongebruiksvriendelijk of zelfs onvolledig. Dat kan ook een reden zijn om hem wel of niet vrij te geven.
Als jij, met behulp van iets dat je koopt en dus door de leverancier vrijgegeven wordt (de binaries) en iets dat je zelf gemaakt hebt (de reverse engineering tools) iets kan genereren dat, na compileren, hetzelfde KAN (en niet IS) als het origineel, dan is dat toch niet illegaal?

Soms is er een algoritme gepatenteerd, maar de vraag is of dat na allerlei compileroptimalisaties nog teruggevonden kan worden.

Ik ben benieuwd hoe hoog de juridische discussie hierover gaat oplaaien!

edit:

@hieronder: Verspreiden is dan ook iets anders dan de mogelijkheid ontwikkelen. Al zijn ook daar grenzen aan. Het is toch ook zo dat je muziek zelf mag naspelen (bijvoorbeeld op basis van alleen je gehoor) en dan opnieuw uitbrengen. Ik heb een aantal cd's liggen waarop dat soort muziekjes staat...

[Reactie gewijzigd door bramseltje op 11 augustus 2010 10:40]

Aangezien je de oorspronkelijke binary ook al niet mocht verspreiden omdat er auteursrecht op ligt,zijn uiteraard afgeleide vormen ook niet door een derde distribueerbaar. Voor intern gebruik ligt dit mogelijk anders.
Tijdens het onderzoek zullen de onderzoekers geen last hebben van hit IE recht, maar eventuele toepassingen van de resultaten krijgen daar wel mee te maken.
Het is geen afgeleid werk. Het is een nieuw creatief werk.
Als ik een boek koop en dat in mijn eigen woorden overtype, dan mag ik dat nog niet verspreiden. Er zit een copyright op het verhaal.

Zie ook rechtspraak over ondertitels en dergelijke. Gaat ook allemaal fout. Intellectueel eigendom moet niet te beperkt worden uitgelegd.
Tja, dat zou te simpel voor woorden zijn. 1 iemand koopt de software, RE'ed het en publiceert zo zijn versie (voor geld of voor nop)..
Dit gaat dus echt niet door de beugel...
Een EULA is (in nederland) alleen ongeldig als er onredelijke/onwettige dingen in staan (en dan ook alleen die betreffende punten), een EULA ansich is wel rechtsgeldig.
En als je vooraf van de bepalingen op de hoogte bent, zodat je dat mee kunt nemen in je beslissing om het al dan niet te kopen...
Nee, niet helemaal, de EULA mag ook na aanschaf getoond worden, MAAR als de EULA pas na aanschaf in te zien is en jij bent er niet mee accoord, dan MOET de verkoper het product terugnemen en jou het geld teruggeven (alleen zullen verkopers er natuurlijk heel moeilijk over doen en in de 1ste instantie altijd zeggen dat het niet zo is).
Nee, dat hoeft de verkoper niet. Hij heeft het product verkocht en geen enkele verplichting om het terug te nemen, zeker niet op basis van een overeenkomst waarin hij zelf geen partij is. De verkoper die in eerste instantie zegt dat het niet zo is, heeft dan ook gelijk en dat is een belangrijke reden waarom EULA's in de regel niet bindend zijn; je mag geen beperkingen of voorwaarden stellen aan het gebruik van een product dat je reeds verkocht hebt.

Het is niet zo dat EULA's nimmer rechtsgeldig zijn, daar doet de wet geen uitspraak over. Het wetboek kent wel tamelijk eenduidige voorwaarden waaraan (de presentatie van) zo'n document moet voldoen. In de praktijk volgt daaruit dat een dergelijke overeenkomst weinig meer is dan een chique vod.
Inderdaad. In de praktijk is dus zo goed als geen software EULA in nederland geldig
Je probleem is dat je zult moeten aantonen dat het niet rechtsgeldig is. En de enige manier om dat te doen is het aan te vechten en in een (dure) rechtzaak door een rechter te laten toetsen. Totdat een rechter heeft bepaald dat hij niet rechtsgeldig is ben je er gewoon aan gebonden.
Verder zou Bos hebben bekeken of het juridisch mag om closed source binaries voor onderzoeksdoeleinden te onderzoeken en te manipuleren. "Ik ben geen juridisch expert, maar ik verwacht daar geen problemen mee."
Hij gaat z'n goddelijke gang maar, maar volgens mij staat toch redelijk standaard in gebruikerovereenkomsten dat het verboden is om de software te reverse-engineeren (of woorden van gelijke strekking).
Bovenstaande zin geeft mij nou niet het idee dat dat zorgvuldig uitgezocht is en dat lijkt me toch wel een pre om te bepalen. Misschien zit je zodirekt wel een criminele activiteit te subsidieren.
Een gebruikersovereenkomst staat niet boven de wet. Als het van de wet mag, kan je in een gebruikersovereenkomst zetten wat je wil, maar dan mag het lekker toch.

Net zoals algemene voorwaarden van winkels/bedrijven. Daar staan ook vaak dingen in die niet stroken met de wet. Die voorwaarden zijn dan ook ongeldig. Zie google voor meer info.
Het grappige is dat je dus *wel* mag reverse engineeren (zie mijn post hierboven), maar doordat je gaat reverse engineeren kan je daardoor wel de licentie om het pakket te gebruiken verliezen.

Hoewel hier in nederland nog nooit een uitspraak over geweest is, is juist precies "dit" waarop een bot maker voor World of Warcraft in amerika op gepakt is. Omdat de bot iets deed wat door de licentie verboden was (ook al is een bot ECHT NIET verboden door de wet) was de licentie niet meer geldig en waren dus alle gebruikers van die bot een illegale versie van World of Warcraft aan het draaien.

De maker van de bot is dan uiteindelijk gepakt voor het faciliteren van illegale software...

De beredenering van de rechter was "vreemd" maar met de huidige auteurswet (en de DMCA-achtige europese wet) zou ook zoiets in Nederland kunnen gebeuren.
Een gebruikersovereenkomst wordt niet ongeldig als er een paar onwettige dingen in staan. Alleen die paar punten komen te vervallen.
Als er in de overeenkomst staat dat je de software niet mag RE'en moet je in nederland toch wel met een goede reden komen waarom dat tegen de wet zou zijn.. Ik kan me namelijk geen reden bedenken..
Een bepaling in een gebruikersovereenkomsten die de rechten inperkt van de gebruiker is niet automatisch onwettig. Onwettig zou zijn "deze software mag enkel gebruikt worden door blanke mannen van 30 tot 40 jaar" Een regel als "gebruik van de software is beperkt tot werknemers van bedrijf X op locatie Y" is dat niet.
Verder zou Bos hebben bekeken of het juridisch mag om closed source binaries voor onderzoeksdoeleinden te onderzoeken en te manipuleren. "Ik ben geen juridisch expert, maar ik verwacht daar geen problemen mee."
Iets zegt me dat hij daar juist wel problemen mee zal krijgen...
hoeft niet. Bij patenten is het zo dat ze onderzoek niet tegen mogen houden. Je kan dus gewoon onderzoek doen aan/met beschermde dingen.
Toepassing van een eventuele nieuwe/verbeterde vinding is een heel ander verhaal, dat kan niet zomaar.
Maar white room (of hoe 't ook noemt) mag dan weer wel?
(Er is een team van engineers die een systeem ontmantelen en geven een beschrijving van hun bevindingen aan een compleet ander team dewelke op zijn beurt weer een systeem in mekaar zet.)
Ik vraag me af hoe ze closed source willen onderzoeken. is het niet bij elke applicatie door de EULA verboden het op wellen wijze dan ook te reverse engineeren? ik ga er niet vanuit dat vendors staan te springen om hiervoor toestemming te geven.
Ik vraag me af hoe ze closed source willen onderzoeken. is het niet bij elke applicatie door de EULA verboden het op wellen wijze dan ook te reverse engineeren? ik ga er niet vanuit dat vendors staan te springen om hiervoor toestemming te geven.
Voor de meeste closed source software is het inderdaad volgens de EULA verboden. Echter, een EULA is een overeenkomst tussen leverancier en klant. Wanneer bijvoorbeeld de leverancier failliet is en de broncode verloren is gegaan (geen source code escrow), dan is het met reverse engineering mogelijk om belangrijke data uit de applicatie te kunnen exporteren of om een applicatie te laten werken in een omgeving waar het origineel niet voor was gemaakt.

Ook moet de eerste rechtszaak nog uitsluitsel geven of datgene wat in de EULA staat rechtsgeldig is. Volgens de Auteurswet, Hoofdstuk VI, Artikel 45m, Paragraaf 1 zijn er situaties waarin reverse engineering is toegestaan voor iemand die een geldige licentie heeft.

[Reactie gewijzigd door The Zep Man op 11 augustus 2010 15:23]

Dan ben ik benieuwd hoe die amerikanen (Microsoft, Cisco, Apple etc.) gaan reageren.
Die zullen waarschijnlijk gaan stuiteren en schermen met de DCMA wetgeving. Nu is de DCMA hier niet "rechtsgeldig" maar de software komt tenslotte wel uit de States.
Wat het voor consequenties heeft voor de persoon Bos zelf zal dan nog moeten blijken als hij eens een keer op bezoek in de states komt.
Op zich wel opzienbarend dat de Europese Onderzoeksraad hiervoor een subsidie heeft gegeven. Ik denk dat de reactie 'uitdagend, ambitieus, en risicovol' ook genoeg zegt over de lading.

Ander puntje is; dat ik ook wel benieuwd ben hoeveel er boven water komt drijven als blijkt dat softwareproducencten code van anderen gebruiken. (zoals bijv. bij routers waar opensource software onder GPL in bleek te zitten de de producent als closed-source bestempelde)

[Reactie gewijzigd door ]Byte[ op 11 augustus 2010 08:53]

maar de software komt tenslotte wel uit de States
De software mag dan wel ergens anders vandaan komen... als ze het hier willen verkopen, dan hebben ze toch zich te houden aan onze wet.
Helemaal waar. Voor zover Bos hier op NL-grond blijft staan! Het blijven amerikanen die er soms toch vreemde gedachten op na houden.
Er zijn al meerdere voorbeelden waarbij er zaken aan het licht gekomen zijn dmv reversed engineering of andere beveiligings issues, met name het omzeilen van beveiligingen, die vervolgens publiekelijk gemaakt zijn en in amerika niet helemaal welkom ontvangen zijn.
Die personen zitten of ondergedoken ergens in amerika of ze durven het land niet (meer?) in omdat ze dan opgepakt kunnen worden.
En dat omdat ze ergens in het buitenland (non US) hierover een lezing / presentatie hebben gehouden.
Het zal allemaal in de toekomst nog moeten blijken of die soep idd zo heet gegeten wordt of niet. Maar ik wil er ook alleen mee aangeven dat het rechtssysteem in amerika er niet helemaal zo uitziet als bij ons. En dat het mogelijk nog wel bepaalde consequenties kan opleveren als er wel openbaarheid aan gegeven zal worden.
In welke hoedanigheid zal speculatie blijven tot over een jaar of 5 wanneer Bos denkt klaar te zijn met het project en wat er over geroepen zal worden.
…ťn ding is mij wel duidelijk. Er zullen veel ogen gericht zijn op dit project!
Ik vraag me af hoe leesbaar de uiteindelijke code zal zijn. Misschien is het alleen maar een stukje broncode welk je kan compilen die dan hetzelfde doet als het orgineel.
Een developer zal het voor zichzelf makkelijk maken om variabelen een duidelijke naam te geven, maar ik heb zo'n idee dat je nu een zooi variabelen krijgt met bijvoorbeeld A$, B$, C$ enz. zodat de code niet makkelijk leesbaar is.
Ook zal de developer in de meeste gevallen een bepaalde stijl van opbouw van de code kiezen om alles nog een beetje netjes en leesbaar te houden.
Hoe dan ook, ik hoop dat er juridische wegen zijn om dit pad wel te bewandelen! Ik vind het een fantastisch initiatief! Al is het alleen al om het bestaande closed source business model onder druk te zetten.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True