Technieuws

1,3 miljoen voor VU-onderzoek naar decompileren van software

Pieter Edelman
Leestijd: 3 minuten

De Vrije Universiteit start met een onderzoeksproject rond het decompileren van complexe software, oftewel het vertalen van binaries naar broncode. De European Research Council stelt 1,3 miljoen euro beschikbaar voor dit Rosetta-programma. Bij het compileren wordt broncode in bijvoorbeeld C of C++ vertaald naar een lange lijst instructies voor de processor. Daarbij gaan hogere structuren zoals functies en klassen, maar ook lussen, verloren. ’Je hebt nu wel disassemblers zoals IDA Pro, die kunnen heel veel met de processorinstructies doen en veelgebruikte functies herkennen. Maar ze kunnen bijna niks met datastructuren‘, vertelt projectleider Herbert Bos van het departement voor Computerwetenschappen. ’Terwijl dat centraal staat in het programma.‘

Een applicatie kan bijvoorbeeld geheugen reserveren om persoonsgegevens volgens een bepaalde structuur op te slaan, maar in de gecompileerde code wordt dat een anonieme buffer ongestructureerde bytes. Het onderzoek moet tools opleveren waarmee engineers inzicht kunnen krijgen in de datastructuren van de binaries en een stap verder ook kan helpen om broncode te genereren. Dat levert overigens nooit de originele broncode op, maar een equivalent zonder de structuur op hoger niveau. Ook verwacht Bos niet dat het genereren van broncode volledig automatisch zal gaan.

Het decompileren van code kan om verschillende redenen interessant zijn, voornamelijk op het gebied van veiligheid. Zo is programmatuur te controleren op de aanwezigheid van trojans of achterdeuren en kunnen beveiligingsexperts controleren of de software wel doet wat het claimt. Een stap verder gaat het dichten van bugs. ’Als je bijvoorbeeld kan zien dat er ergens een buffer van honderd bytes zit, dan kan je de binary zo herschrijven dat de aanroepen naar die buffer nooit verder gaan dan die honderd bytes en daarmee buffer overflows voorkomen‘, vertelt Bos. Vooral bij legacy applicaties waar geen broncode van is kan dat voordelen opleveren.

This article is exclusively available to premium members of Bits&Chips. Already a premium member? Please log in. Not yet a premium member? Become one and enjoy all the benefits.

Login

Related content